Python 沒提供堪用的單行寫法, 但為此回頭學 awk, sed 也太麻煩了。想想還是回頭寫 Ruby 吧, 相較於 Perl, 至少較熟一些 Ruby 。
alias cdve='cd $(echo $PATH | ruby -ne '"'"'puts split(":")[0].split("/")[0..-2].join("/")'"'"')' alias cdvesrc='cd $(echo $PATH | ruby -ne '"'"'puts split(":")[0].split("/")[0..-2].join("/")'"'"')/src' alias cdvesite='cd $(echo $PATH | ruby -ne '"'"'puts split(":")[0].split("/")[0..-2].join("/")'"'"')/lib/python2.5/site-packages/'
如上所示, 進入 virtualenv 後, 打 cdve / cdvesrc / cdvesite 會切到 virtualen 的根目錄、src、site-packages。
其中最難搞的是在單引號內用單引號, 參考 《BASH, escaping single-quotes inside of single-quoted strings》, 用 "'" 來表示單引號, 總算是搞定了。關鍵在於用到單引號時就換成 "'", 但字串間不能有空白, 結果就變成超難懂的 bash code 了。
沒有留言:
張貼留言