Re: [問題] python -c 接的程式碼如何換行
※ 引述《Holocaust123 (奔跑的蝸牛)》之銘言:
: 我寫了一隻小程式foo.py , 想把它"嵌入".bashrc的某個function bar:
: bar()
: {
: output=`python -c "..."` # 這邊用python比較好處理. 其實也可以改成:
: # output=`python foo.py`
: # 但, foo.py的內容大概也不會改變了,
: # 故想把程式碼嵌進來, 就不需保留foo.py
:
: # 然後用bash script處理output
: # blah blah ...
: }
這樣的話其實還好
首先你的 Python script 裡面字串常數要用單引號, 不要用雙引號
(用跳脫字元的字串一部份就照用)
不然要改比較多東西
例如假設你想嵌入一個 script 長下面這樣:
for i in range(0, 9):
print i
print 'Second line'
print 'Finished'
那就這樣:
output=`python -c "
for i in range(0, 9):
print i
print 'Second line'
print 'Finished'
"`
引號裡面隨你換行隨你空白, shell 都會保留
不過用雙引號的好處是可以用跳脫字元
輸出其實也一樣, 如果你直接 echo $output 那 shell 會把換行全部改成空白
我前面有說了這是 shell 的問題, 不是 python
其實這個問題是「要怎麼讓 shell 保留輸出的換行」才對, 和 python 無關
所以你在這邊問也怪怪的
不過想想還是直接告訴你答案好了
請把 echo $output 改成 echo "$output"
用雙引號括起來就一切解決...
其實這些都 google 就有了, 幾乎都是 shell 的技巧而已
順便附幾個網址參考
http://goo.gl/l6ejz 這篇在講 Bash Shell 中單雙引號的差異
http://goo.gl/K2orU 這篇在講如何保留 Bash Shell 字串變數中的換行
--
「我最想要的同伴嘛,首先是要笑口常開,其次是我們能永遠不會發生誤會。
如果這些都能辦到的話,嗯,如果他是世界上第一流的橋手,也還不錯。」
-- 班尼多‧加羅素,前義大利藍隊成員
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.81.146
推
01/20 13:00, , 1F
01/20 13:00, 1F
推
01/20 16:42, , 2F
01/20 16:42, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):