从Extendscript Toolkit创建shell脚本

时间:2014-10-08 17:20:14

标签: bash shell extendscript

作为Extendscript的输出之一,我想创建一个shell脚本,然后由用户执行。这是一个非常基本的例子:

function createShellScript()
{
    var contents = "#!/bin/bash\ndate";
    var outputFolder = Folder.selectDialog ("Choose where to save:");
    var shFile = new File(outputFolder.absoluteURI + "/shell.sh");
    shFile.open("W");
    shFile.write(contents);
    shFile.close();
}
createShellScript ();

如果我获取生成的文件(shell.sh),在其上运行chmod +x以使其可执行,然后运行它,没有任何反应。 但是,如果我调整上面的脚本来创建相同的内容而不是文本文件 - 所以它输出shell.txt打开文件,将内容复制到代码编辑器中的空白文档中,并保存为{{1文件,然后.sh并运行它,它工作正常。

为什么Extendscript在使用此方法时不会生成正确的chmod文件?

感谢您的帮助。

取值

1 个答案:

答案 0 :(得分:4)

您需要将换行符设置为unix样式。例如,shFile.lineFeed = "Unix";

function createShellScript()
{
    var contents = "#!/bin/bash\ndate";
    var outputFolder = Folder.selectDialog ("Choose where to save:");
    var shFile = new File(outputFolder.absoluteURI + "/shell.sh");
    shFile.open("W");
    shFile.lineFeed = "Unix";
    shFile.write(contents);
    shFile.close();
}
createShellScript ();