shell指令碼單 雙引號問題描述

2021-08-23 14:03:03 字數 749 閱讀 3608

工作中常用到shell指令碼,遇到了乙個疑惑,求解。

常見的解釋:

單引號字串的限制:

雙引號的優點:

圖一與之類似的指令碼,用雙引號表示: 第18行

6~9四行是str.txt內容(為了**方便,copy到一起顯示)

圖二、輸出指令碼

雙引號、單引號、沒有引號結果如下圖:紅圈圈起來的部分。結果是:

雙引號括起來的變數,原樣輸出了圖二中的第九行,* 在雙引號中不起作用了

單引號確實是任何字元都會原樣輸出,輸出了$word

沒有引號,圖二中第九行中首字母  *  起作用,輸出了這個目錄下的內容。

疑惑1:在圖一中,單引號中的變數應該無效的但是結果確列印出了值,在圖二中就是無效的了,這裡是否是因為圖一中的單引號用在了awk命令列中。

疑惑2:在圖二中,雙引號輸出和沒有引號輸出結果,雙引號在執行  "$word"  後,列印出 *  17 procedure status *  ,echo執行時,不是先碰到 * 符號,首先執行嗎?為什麼這裡沒有執行呢?不是說雙引號中的 可以有變數的嗎 ?  這裡有乙個問題就是 * 符號,在這裡解釋為是否屬於變數將。

任務完成了,但是這個疑惑,就像跟刺一樣扎在心裡不舒服,求解。

shell指令碼中單雙引號問題

在shell指令碼開發過程中,針對變數的單引號 和雙引號 都是有應用場景的,根據我的經驗總結起來就是 獲取變數值的時候就使用雙引號 這是基本用法。如果是在指令碼中要編寫乙個新的指令碼,同時這個新的指令碼中還需要包含變數,你就可以選擇使用單引號 了,特別是生成乙個臨時的expect指令碼時,單引號 就...

shell指令碼中單雙引號疑惑

工作中常用到shell指令碼,遇到了乙個疑惑,求解。常見的解釋 單引號字串的限制 雙引號的優點 圖一與之類似的指令碼,用雙引號表示 第18行 6 9四行是str.txt內容 為了 方便,copy到一起顯示 圖二 輸出指令碼 雙引號 單引號 沒有引號結果如下圖 紅圈圈起來的部分。結果是 雙引號括起來的...

shell指令碼中單引號和雙引號

shell指令碼中的單引號和雙引號一樣都是字串的界定符,而不是字元的界定符。單引號用於保持引號內所有字元的字面值,即使引號內的 和回車也不例外,但是字串中不能出現單引號。注意是所有,只是單引號本身不能夠出現在其中 雙引號用於保持引號內所有字元的字面值 回車也不例外 但以下情況除外 反引號位 位於鍵盤...