我想它已经有了。Python/Terminal
我正在用python试验“”字符串和osascript我想它已经有了。Python/Terminal,python,unix,heredoc,Python,Unix,Heredoc,我正在用python试验“”字符串和osascript os.system("""arch -i386 osascript -e ' tell application "Finder" activate display dialog "Hi" end tell'""") 这是从Python运行的,但它一直告诉
os.system("""arch -i386 osascript -e
' tell application "Finder"
activate
display dialog "Hi"
end tell'""")
这是从Python运行的,但它一直告诉我
osascript: option requires an argument -- e
usage: osascript [-l language] [-e script] [-s {ehso}] [programfile] [argument ...]
我不知道你的情况,但我在我的声明中看到了a-e。这并不缺乏。发生了什么?我需要在其中指定一个herdeoc吗(我认为是Python的herdeoc),以便终端读取?问题在于Python的herdoc/双引号字符串语法在字符串中保留了换行符和其他空格。显然,这破坏了
系统()
以某种方式调用。去掉有问题的换行符并使脚本字符串在-e
之后立即开始应该可以工作。问题是Python的herdoc/双引号字符串语法在字符串中保留了换行符和其他空白。显然,这破坏了系统()
以某种方式调用。去掉有问题的换行符并使脚本字符串在-e
之后立即开始应该可以工作。Python Herdeoc语法不会删除换行符,可能这就是使shell混淆的原因。尝试将脚本的第一行与-e
放在同一行上,Python Herdeoc语法不会删除newlines,可能这就是使shell混淆的地方。尝试将脚本的第一行与-e