我有一个字符串:
arguments="2 3 4"
我想将这些参数发送到文件file.py,例如,
python file.py 2 3 4
我如何只使用字符串?下面的代码片段不起作用(它只发送一个参数,整个字符串本身..)。
python file.py $arguments ?
答案 0 :(得分:4)
在bash中(与zsh相反),该代码应该按给定的方式工作。也就是说,您可以尝试确保IFS包含空格:
IFS=' '
或者,将其重置为默认值:
unset IFS
...在运行该字符串之前。 IFS
确定在shell拆分中使用哪些字符,因此如果它不包含空格,则不会展开以空格分隔的参数。
或者 - 最好 - 使用数组:
arguments=( 2 3 4 )
python file.py "${arguments[@]}"
在该格式中,您可以使用包含空格的参数:
arguments=(2 "thirty three" 4 )
...由于BashFAQ #050中记录的原因而无法正常工作。
答案 1 :(得分:1)
最好使用BASH数组:
arguments=(2 3 4)
python file.py "${arguments[@]}"