gpt4 book ai didi

python - python 中的空格字符不会被 bash 解释

转载 作者:行者123 更新时间:2023-11-28 16:38:48 25 4
gpt4 key购买 nike

我有一个 Python 脚本 script.py,我用它来生成另一个脚本的命令行参数,就像这样:

./main $(./script.py)

script.py 的输出可能包含空格(例如 foo bar),这些空格会被 shell 无意中解释。我希望 ./main 的参数是单个字符串 "foo bar"。当然,如果我引用 ./main 的参数,我可以解决这个问题,就像这样:

./main "$(./script.py)"

但我不能也不想那样做。 (原因是因为 ./main 被调用时没有引用另一个我无法控制编辑的脚本。)

是否有我的 Python 脚本可以使用且 bash 无法解释的 space 字符的替代表示?

最佳答案

您可以尝试让 ./script.py 输出不间断空格 (U+00a0) 而不是 bash 不会使用的常规空格分词。但是,我会提交错误报告,让调用 main 的脚本在其参数中添加引号。这是否有效取决于 main 对获取由表示 U+00a0 而不是单个空格字符的两字节 UTF-8 序列组成的字符串的 react 。

示例 script.py:

#!/usr/bin/python
print u'foo\xa0bar'.encode('utf8')

示例脚本 a.bash:

#!/bin/bash
main () {
echo $#
}
main $(script.py)

最后,mainscript.py 的输出中获取 1 个参数的演示:

$ bash a.bash
1

关于python - python 中的空格字符不会被 bash 解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22276347/

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