續: shell script裡使用python的技巧
http://timchen119.blogspot.com/2007/02/shell-scriptpython.html
繼上次這篇文章裡的方法, lloyd大大又教了我更多用python只寫一行程式碼的方法,比如:
cat /etc/passwd | python -c "$(echo -e 'import sys \nfor i in sys.stdin: \n s=i.split(":")\n if s[0] == "root": \n for j in range(len(s)): print s[j],')"
或者是
source lpython.sh
然後
#lpython.sh
lpython ()
{
python -c "$(echo -e "$@")"
}
cat /etc/passwd | lpython 'import sys \nfor i in sys.stdin: \n s=i.split(":")\n if s[0] == "root": \n for j in range(len(s)): print s[j],'
這個方法巧妙的運用了 \n 跟空白來避開python在one-liner情況下的縮排問題, 不失為一種方便的方法.
相同的需求也有例如pyone之類的實作方式, 不過比較起來我比較喜歡lloyd的方法.
2 則留言:
dont understand
這篇文章討論的重點其實是在於如何在不新增一個.py檔的情況下在shell script裡直接使用python, 只能算是一個hack, 對於一般的需求而言, 其實只要新增一個新的python檔案就可以了.
張貼留言