【问题标题】:Osascript requiring argument I think it already has. Python/Terminal我认为它已经有需要论证的 Osascript。 Python/终端
【发布时间】:2012-06-26 13:48:05
【问题描述】:

使用 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 ...]

我不了解你,但我在我的陈述中看到了 -e。不乏这一点。这是怎么回事??我是否需要在其中指定一个 HEREDOC(我认为是 Python Heredoc),以便终端读取?

【问题讨论】:

  • Python heredoc 语法不会删除换行符,也许这就是让 shell 感到困惑的地方。试着把脚本的第一行和-e放在同一行

标签: python unix heredoc


【解决方案1】:

问题在于 Python heredoc / 双引号字符串语法在字符串中保留了换行符和其他空格。显然,这会以某种方式破坏system() 调用。摆脱有问题的换行符并使脚本字符串在 -e 之后立即开始应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-08
    • 2013-01-31
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多