作为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
文件?
感谢您的帮助。
取值
答案 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 ();