2015-04-08 49 views
4

在bash,換行符是通過命令替換保留:如何從魚殼中的命令替換輸出中捕獲換行符?

$ TEST="$(echo 'a 
    b 
    c 
    ')" && echo "$TEST" 
# → 
a 
b 
c 

但是,當我嘗試做魚貝一樣,換行字符被轉換成空格:

$ set TEST (echo "a 
    b 
    c 
    "); and echo "$TEST" 
# → 
a b c 

如何讓魚把換行符保存爲換行符?

回答

1

精確問題魚郵件列表上的討論:討論了魚郵件列表:http://sourceforge.net/p/fish/mailman/message/33644843/

您必須修改IFS變量來做到這一點:

$ set out (seq 5) 
$ echo "$out" 
1 2 3 4 5 

$ set oldIFS "$IFS" 
$ set IFS "" 
$ set out (seq 5) 
$ echo "$out" 
1 
2 
3 
4 
5 
$ set IFS "$oldIFS" 
+0

感謝您的反饋意見他。它的作用就像一個魅力,但是當'IFS'設置爲''「''時,會帶來'fish_prompt'的一些錯誤。你知道有什麼計劃可以用一行代碼來完成並抑制錯誤嗎? – tomekwi

+0

在該郵件列表線程中有一些指向魚問題跟蹤器的鏈接。 –