gpt4 book ai didi

python - 将带空格的参数传递给 linux 服务

转载 作者:太空狗 更新时间:2023-10-29 11:14:48 26 4
gpt4 key购买 nike

我有一个接受参数的脚本,我希望它能够作为 linux 服务运行。有一个从/etc/ini.t/deploy 到实际脚本的符号链接(symbolic link)。

如果我跑

/etc/init.d/deploy --machine NAME --message "Hello World"

一切正常,脚本接收到 4 个参数:

      '--machine',
'NAME',
'--message',
'Hello World'

另一方面,如果我运行它

/sbin/service deploy  --machine NAME --message "Hello World"

然后脚本接收5个参数:

      '--machine',
'NAME',
'--message',
'Hello',
'World'

同样的情况在 Perl 和 Python 中都会发生,所以据我所知,它是在空间分割后传递参数的“服务”。我该怎么做才能使这项工作与直接调用时使用“服务”的方式相同?

最佳答案

这就是传递参数的问题。显然,在您的上下文中,有些东西不是逐字传递的,而是通过解释传递的,可以这么说。

您可以使用两次引用您的东西的解决方法:

/sbin/service deploy  --machine NAME --message '"Hello World"'

在许多情况下,这可以解决问题。

更通用的方法是使用现代 bashprintf "%q":

/sbin/service deploy  --machine NAME --message "$(printf "%q" "Hello World")"

这会生成给定字符串的引用版本。

关于python - 将带空格的参数传递给 linux 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19808317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com