只有在提供参数时,Python脚本才会在Bash脚本中返回空字符串

时间:2015-08-15 06:33:13

标签: python linux bash shell

如果我有一个Python脚本只是打印出第一个参数,那么

#!/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脚本将成功回显" No args"。但是,如果我将第3行更改为

echo `python test.py $test`

然后我将简单地得到一个空字符串作为Bash脚本的输出,我不知道为什么。当我将其更改为

时,我甚至得到空字符串
echo `python test.py "test"`

2 个答案:

答案 0 :(得分:0)

将反引号更改为$()似乎已有效

答案 1 :(得分:0)

您应该尝试使用bash脚本文件:

python test.py $test

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

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