我正在从 python 模块返回字符串,以便在 bash 脚本中使用。
这是我到目前为止所拥有的:
SCRIPT_DIR=/somepath/to/scripts/folder
cd $SCRIPT_DIR/eod
python_cmd='import sys;
sys.path.append("/somepath/to/scripts/folder/utils");
import settings as st;
print " ".join(st.foo())'
# Fix indentation for Python
python_cmd=${python_cmd//' '/''}
my_array=(`python -c "$python_cmd"`)
我想在上面的代码片段中使用 DRY 哲学。但是,该字符串/somepath/to/scripts/folder
在脚本中重复出现。我想将 $SCRIPT_DIR 的定义传递给 python_cmd - 但是我尝试了(用 $SCRIPT_DIR/utils 替换 python_cmd 中的路径字符串,但失败并出现以下错误:
Traceback (most recent call last):
File "<string>", line 3, in <module>
ImportError: No module named settings
我究竟做错了什么?
笔记:
我正在运行 bash 4.1.5