如果我参加了跑步命令
do shell script "echo hello > ~/Desktop/file.txt"
它会在我的桌面上生成一个文本文件,名称为file.txt,内容为
您好
(想象一下这里有一个空白行)
如何防止它创建此行,我无法在线找到任何资源。或者我的在线选项是在创建后找到某种方法将其删除?
答案 0 :(得分:1)
我相信这是:
do shell script "printf hello > ~/Desktop/file.txt"
答案 1 :(得分:1)
DigiMonk的代码有效。
原始海报代码:
do shell script "echo hello" > "~/Desktop/file.txt"
发布错误,永远不会按原样运作。 Applescript将编译它。但实际上它是'你好大于〜/ Desktop / file.txt
正确的表格:
引用并转义文本字符串的引号。 (如果文本字符串很长并且包含空格,则更好的选项。)
do shell script "echo \"hello world\" > ~/Desktop/file.txt"
或不使用引号。
do shell script "echo hello > ~/Desktop/file.txt"
另请注意,使用波浪号〜符号时,无法引用文件路径。 波形符号用于指向用户主目录。引用它将阻止它正常工作。
答案 2 :(得分:1)
do shell script "printf %s " & quoted form of "hel'\\%slo" & " > ~/Desktop/file.txt"
printf aa%sbb
会打印aabb
。如果输入长度超过getconf ARG_MAX
字节(当前大约300 kB),则此方法不起作用。
这也适用于更长的字符串:
set f to POSIX file ((system attribute "HOME") & "/Desktop/file.txt") as text
set b to open for access f with write permission
set eof b to 0
write "α" to b as «class utf8»
close access b
如果没有as «class utf8»
,该文件将保存为MacRoman。 as Unicode text
是UTF-16。
do shell script
使用/ bin / sh,因此除非您添加do shell script "echo -n hello"
,否则-n hello
会打印shopt -u xpg_echo
。