我一直在努力解决这个问题,但现在运气不好。最糟糕的情况是,我正在使用bash脚本向python脚本发送参数:
示例:
foo.sh调用bar.py….调用看起来像:bar.py$var1$var2。。。$瓦恩
然后,python脚本使用sys.argv数组打印所有参数。python脚本在命令行中正常工作,但是当从bash脚本(即foo.sh)调用时,bar.py没有输出。
另外,我用“#”开始foo.sh!/bin/bash-x”选项并观察输出。
总结一下:
任何帮助都会很棒!!!!
谢谢!
编辑:大家好,谢谢你们的回复,完整的代码很长…但是。。。这两个脚本的内容可以归纳为
食物
#!/bin/bash
declare -a list1;
declare -a list2;
list1=("foo" "bar" "please");
list2=("foo" "bar" "please" "help");
declare -a joined;
joined=( $(bar.py "${list1[@]}" "${list2[@]}" ) );
条形图
#!/bin/python
import sys
for arg in sys.argv:
print arg
因为我假设python中的所有缩进都是正确的(还不确定StackOverflow是如何做到的:))。这两个代表了我的核心问题。如前所述,bar.py在没有从foo.sh调用时正确地打印参数
附言:我的意思是说“硬壳”
编辑:
我想起来了,我有一些奇怪的字符组合,这一行没有被正确地转义。我把它从
到
猛击逃跑是一种骑术,哈哈!感谢那些回答的人,谢谢你的帮助
我有你描述的几乎完全相同的设置,这就是我的bash脚本的外观:
编辑,因为代码已发布
您的代码正在执行正确的操作-除了
bar.py
脚本的输出被捕获到数组joined
中。因为看起来您没有打印出joined
的内容,所以您永远看不到任何输出。下面是演示:
文件
pybash.sh
文件
pytest.py
如果运行bash脚本,这将打印出一堆“hi”字符串。
相关问题 更多 >
编程相关推荐