Re: [問題] python -c 接的程式碼如何換行

看板Python作者 (←這人是超級笨蛋)時間13年前 (2011/01/20 03:16), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《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
不熟sh但是又必須用shell 的人這樣做就對啦~~
01/20 13:00, 1F

01/20 16:42, , 2F
謝謝你熱心講解 m(_ _)m
01/20 16:42, 2F
文章代碼(AID): #1DDpYLql (Python)
文章代碼(AID): #1DDpYLql (Python)