如果我有一个Python脚本,简单地打印的第一个参数是给Python脚本返回在bash脚本空字符串,只有当参数提供
#!/usr/bin/env python
import sys
try:
print sys.argv[1]
except IndexError:
print "No args"
我可以运行它找到并得到预期的输出。现在,如果我编写一个简单运行python脚本并回显其输出的Bash脚本。
#!/bin/bash
test="Test"
echo `python test.py`
然后,bash脚本将成功回显“无参数”。但是,如果我改变线3
echo `python test.py $test`
然后,我将简单地得到一个空字符串作为bash脚本的输出,我不知道为什么。我甚至得到了空字符串,当我将其更改为
echo `python test.py "test"`
无法重现。参数用最后两个命令打印。 – user000001
这是最奇怪的,怎么样回声$(蟒蛇test.py $测试) –
无法复制,当您运行脚本,使用'bash的-x scriptname'得到扩张的痕迹。尽量不要使用反引号,'$()'更安全,更易读。 – cdarke