Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想它已经有了。Python/Terminal_Python_Unix_Heredoc - Fatal编程技术网

我想它已经有了。Python/Terminal

我想它已经有了。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运行的,但它一直告诉

我正在用python试验“”字符串和osascript

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