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