2015-08-15 74 views
3

如果我有一个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"` 
+0

无法重现。参数用最后两个命令打印。 – user000001

+0

这是最奇怪的,怎么样回声$(蟒蛇test.py $测试) –

+0

无法复制,当您运行脚本,使用'bash的-x scriptname'得到扩张的痕迹。尽量不要使用反引号,'$()'更安全,更易读。 – cdarke

回答

0

改变反引号为$()似乎已经奏效

0

你应该试着在你的bash脚本文件:

python test.py $test 

它将打印您的$ test变量内容。

我调用没有反引号和回声的Python脚本。我使用Bash/Python脚本组合工作了很多,这对我很好。