我一直在努力解決這個問題,現在沒有運氣。形勢的地殼是,我使用的是bash腳本來參數發送到AA python腳本:如何將可變參數從bash腳本傳遞到python腳本
例子:
foo.sh調用bar.py ....通話的樣子:酒吧。 py $ var1 $ var2 ... $ varn
python腳本然後使用sys.argv數組打印所有參數。 python腳本可以從命令行正常工作,但是使用bash腳本(即foo.sh)調用時,bar.py沒有輸出。
此外,我用「#!/ bin/bash -x」選項啓動foo.sh,並觀察輸出。
總結:
- 兩個腳本,foo.sh和bar.py
- foo.sh調用bar.py,傳遞foo.sh的變量作爲自變量,以bar.py
- 酒吧打印的.py它認爲使用sys.argv中從自己的終端上運行時
- bar.py工作參數,從foo.sh
調用時不起作用任何幫助將太棒了!
謝謝!
編輯:大家好,感謝您的答覆,完整的代碼是很長......但兩個腳本的內容可以概括
foo.sh _ __ _
#!/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[@]}"));
bar.py _ __ _
#!/bin/python
import sys
for arg in sys.argv:
print arg
正如我假設Python中的所有縮進都是正確的(不知道StackOverflow如何做到這一點:))。這兩個代表了我遇到的問題的核心。如上所述,當bar.py不從foo.sh調用時,它會正確輸出參數。
PS:我的意思是說「殼」
請發佈實際的bash腳本,它會使它更容易看到whatts錯誤 – tobyodavies 2010-10-17 22:34:00
然後,你做的事情非常錯誤。發佈展示問題的最小代碼。 – 2010-10-17 22:34:33
從bash腳本調用python腳本可以打印任何東西嗎?例如。如果你在'foo.py'的頂部添加'print「wtf」',你會在運行bash腳本時看到輸出嗎? – intuited 2010-10-17 22:36:16