shell中單引號和雙引號的問題

2021-07-24 07:51:03 字數 562 閱讀 7739

寫乙個shell去處理mysql的資料,遇到乙個拼接條件的問題。就是在-e中的sql語句中加where條件,模擬下。

lala=hehe

echo "'$lala'"

輸出:'hehe'

這樣就可以把引數拼接到where條件中

echo "select a from table where a='$lala' "

輸出:select a from table where a='hehe'

這裡注意下這種情況的輸出

echo "select a from table where a="

'$lala'

" "輸出:select a from table where a=$lala

執行效果和下面這種方式一樣

echo select a from t '$lala'

輸出:select a from table where a=$lala

結論:外層「」 可以使內層『』失效,變為單引號在字串輸出,若外層雙引號再加雙引號,則雙引號使內層雙引號失效,此時剩餘的單引號生效。

shell中單引號 雙引號 反引號

一 單引號和雙引號 首先,單引號和雙引號,都是為了解決中間有空格的問題。因為空格在linux中時作為乙個很典型的分隔符,比如string1 this is astring,這樣執行就會報錯。為了避免這個問題,因此就產生了單引號和雙引號。他們的區別在於,單引號將剝奪其中的所有字元的特殊含義,而雙引號中...

shell中的單引號 雙引號和反引號

單引號 所有轉移符全部關閉,完整的反應括號中的內容 雙引號 部分轉義符關閉,但某些則保留 如 反引號 反引號內作為乙個系統命令並執行 1 反引號位 位於鍵盤的tab鍵的上方 1鍵的左方。注意與單引號 位於 enter鍵的左方的區別。在linux中起著命令替換的作用。命令替換是指 shell能夠將乙個...

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

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