shell指令碼中含有變數的字串無法正確輸出

2021-10-01 02:14:14 字數 638 閱讀 7356

在cygwin中執行shell指令碼時,發現一部分含有變數和轉義字元的字串無法按照我們預設的方法輸出,例如:

理想的輸出結果應該是:hello,nice to meet you 「zcx」

但我們在cygwin中執行之後,發現結果並不是我們預想的那樣,而是如下:

這是為什麼呢?剛開始還以為是cygwin的環境沒有搭好,於是特意開啟了ubuntu的虛擬機器,繼續執行shell指令碼,卻發現輸出的結果錯的一模一樣,這讓我十分懷疑人生。

後來決定先跳過這乙個問題。去解決「\r」無法解釋的問題。然後按著網上的說法,安裝了dos2unix。然後執行:

出現這樣的表示則說明你成功了

然後再次執行我們原先的shell檔案a_test.sh,理所應當地發現不報「\r」的問題了,另乙個驚喜發現,我們帶有變數的字串也可以正常輸出了

非常開心地滾去學下乙個點了~

C中含有 if 的巨集定義

含有if的巨集定義 當巨集定義中含有 if 時 1 定義如下巨集 define dc p if foo p fun p 用在下面的環境中 if k n dc k else dc n 巨集替換後,如下 if k n if foo k fun k else if foo n fun n 可見,原來的 i...

定時任務執行sh指令碼中含有的expect指令碼方法

root node 2 crontab l 每週六,日 自動執行巡檢指令碼 min hour day month week 1 1 6,0 cd root test.sh 下面這個為不可用 27 9 sh root ii.sh下面指令碼為測試指令碼,真實sh指令碼裡面的expect執行很多,這只是放...

Sed命令中含有轉義字元的解決方法

在sed命令中有許多的字元都被轉義,比如 單雙引號還有點號等等,因此使用sed命令進行字串的匹配和修改的時候,字串中如果含有轉義字元,很多情況下不能直接用字元本身表示。這時候可以使用反斜槓加上轉義字元的方法來輸出含轉義字元的字串,但這一方法並不是對所有的轉義字元都有用,過程也較複雜。下面一一說明 一...