1.shell調用python腳本,並且向python腳本傳遞參數:
shell中: python test.py $para1 $para2 python中: import sys def main($canshu1, $canshu2) ..... main(sys.argv[1], sys.argv[2])
2.使用shell調用python中的函數:
python腳本如下:
test.py:
import ConfigParser config = ConfigParser.ConfigParser() config.read("test.conf") def get_foo(): return config.get("locations", "foo") def get_bar(): return config.get("locations", "bar")
我想通過shell調用里面的get_foo,只需要在shell中執行一個調用的命令行即可:
python -c 'import test; print test.get_foo()'
-c選項只是告訴python來執行一些python命令。
為了將結果存儲在變量中,你可以因此這樣做:
RESULT_FOO=`python -c 'import test; print test.get_foo()'`
或者,等效於:
RESULT=$(python -c 'import test; print test.get_foo()')
我們也可以一次調用所有方法,放入一個集合中,再調用切割方法獲取相應的值:
ALL_RESULTS=$(python -c 'import test; print test.get_foo(), test.get_bar()')
如果需要第二個結果,並將其放入RESULT_BAR:
RESULT_BAR=$(echo $ALL_RESULTS | cut -d' ' -f2)