1樓:
在linux作業系統上編寫shell指令碼時候,我們是在變數的前面使用$符號來獲取該變數的值,通常在指令碼中使用”$param”這種帶雙引號的格式,但也有出現使用'$param'這種帶引號的使用的場景,首先大家看一段例子:
複製****如下:
[root@linux
~]#name=tektea
[root@linux
~]#echo
$name
tektea
[root@linux
~]#sayhello=”hello
$name”
[root@linux
~]#echo
$sayhello
hello
tektea
[root@linux
~]#sayhello='hello
$name'
[root@linux
~]#echo
$sayhello
hello
$name
發現了嗎?沒錯!使用了單引號的時候,那
$name將失去原有的變數內容,僅為一般字元的顯示型態而已!這裡必需要特別小心在意!
所以,單引號與雙引號的最大不同在於雙引號仍然可以保有變數的內容,但單引號內僅能是一般字元,而不會有特殊符號,我們也可以這裡理解:'$sayhello'
與“\$sayhello”是相同的。
在shell指令碼開發過程中,針對變數的單引號(‘)和雙引號(“)都是有應用場景的,根據我的經驗總結起來就是:
1.獲取變數值的時候就使用雙引號(“),這是基本用法。
2.如果是在指令碼中要編寫一個新的指令碼,同時這個新的指令碼中還需要包含變數,你就可以選擇使用單引號(‘)了,特別是生成一個臨時的expect指令碼時,單引號(‘)就會經常使用到的。
2樓:竇秀英蒯未
shell指令碼中的單引號和雙引號一樣都是字串的界定符,而不是字元的界定符。單引號用於保持引號內所有字元的字面值,即使引號內的\和回車也不例外,但是字串中不能出現單引號。(注意是所有,只是單引號本身不能夠出現在其中)。
雙引號用於保持引號內所有字元的字面值(回車也不例外),但以下情況除外:
$加變數名可以取變數的值
反引號仍表示命令替換
\$表示$的字面值
\`表示`的字面值
\"表示"的字面值
\\表示\的字面值
除以上情況之外,在其它字元前面的\無特殊含義,只表示字面值。
從上就可以看出單引號和雙引號的區別。下面舉幾個例子:
可見,單引號中完全是保持字串的原型輸出,而雙引號進行了命令替換。
由上可見雖然單引號和雙引號都是字串的限定符,但還是有所區別。
python單引號和雙引號的區別
3樓:笑喘是病得抽
使用上來說沒什麼區別
有點小技巧倒是可以提一下
如:str = 'my name is "***"!'
str = "my name is '***'!"
這樣各自的賦值包含不同的引號
用單引號和雙引號shell的區別
4樓:wx928388亻韋亻言
數字,路徑等可以用,然後輸出最終內容。
雙引號內的命令或者變數寫法’命令或變數’或$(命令或變數)無引號:把內容輸出出來,可能不會鍵含有空格的字串,視為一個整體輸出,如果內容中有命令、變數等,會先把變數、命令解析出來,然後輸出最終內容,如果字串中帶有空格等特殊字元,則不能完整輸出,需要改加雙引號。一般連續的字串單引號:
所見即所得,即將單引號內的內容原樣輸出,或者描述為單引號裡面看到的是什麼就輸出什麼。
雙引號:把雙引號裡面的內容給輸出出來、命令解析出結果,如果內容中有命令、變數等,會先把,變來那個
shell指令碼變數單引號和雙引號的區別以及
5樓:秋天不回來
a=b c
echo "$a" 結果是b c
echo '$a' 結果是$a
雙引號會保留特殊字元的特殊含義
單引號就是將所有的字元作為普通字元
shell指令碼中 的 單引號和反引號經常混淆,請高手幫我區別它們的功能,謝謝
6樓:小米飛貓
單引號內忽略掉所有特殊字元
反引號能夠將一個命令的標準輸出插在一個命令列中任何位置
7樓:匿名使用者
單引號原樣輸出,你可以記為“單調輸出”,如下原樣輸出 eval echo a 這個字串,很單調吧:
echo 'eval echo a'
反引號執行內容後輸出,可以記為“反譯輸出”,要把引號中的內容反向翻譯一下,如下要執行反綽號中的內容 eval echo a,得到 a,再執行 echo,最終輸出 a:
echo `eval echo a`
8樓:在錦溪古鎮看西甲的墨西哥狼
雙引號和單引號區別還是有區別的,別說差不多(1) 單引號裡的任何字元都會原樣輸出,單引號字串中的變數是無效的(雙引號可以)
(2) 單引號字串中不能出現單引號(對單引號使用轉義符後也不行)(3) 對於上一條,雙引號可以
(4) 對於命名一個字串,單引號雙引號都可以,甚至可以不加引號再舉個例子吧,比方說預定義了一個變數name=zhangsan雙引號,myname="$name is me"
echo myname 這邊輸出的是: zhangsan is me
單引號,myname='$name is me'
echo myname 這邊輸出的是: $name is me一般來說用雙引號,單引號弱爆了
如何在shell指令碼里單引號裡再引用變數
9樓:水瓶曙光
朋友,你兩個單引號就行啦。注意這兩個單引號不是兩個雙引號哦
a=1echo ''$a''
10樓:攻城獅
單引號不能引用變數的,
只能用雙引號
a=1echo "$a"
shell中對於單引號,雙引號和反引號的處理方式
11樓:小米飛貓
單引號:所有轉移符全部關閉,完整的反應括號中的內容
雙引號:部分轉義符關閉,但某些則保留(如:$ )
反引號:反引號內作為一個系統命令並執行
12樓:匿名使用者
單引號:允許一些特殊字元保留期特有的意義
雙引號:遮蔽掉任何字元的特殊含義
反引號:作為shell命令被執行
雙引號裡的引號用單引號,單引號裡的引號用什麼號
額哈哈 還有一說,用反引號 和 很稀有,沒幾個人知道。一般用反引號,引文內還有引文,就用單引號。引文內還有引文,用單引號,單引號內如果還有引文,就得用反引號,反引號裡面如果還有引文就再沒有辦法了。如 我對他說 老師說 黑白相間中的 白 與 黑 是反義詞。這句話中,你對他說的話用雙引號,引述老師的話,...
字串用單引號還是用雙引號,字串用雙引號(String)而字元用單引號(char),為什麼是這樣???在java中
愚人談娛樂 c 中字串用雙引號 單引號代表一個unicode字元 c 是由c和c 衍生出來的一種安全的 穩定的 簡單的 優雅的物件導向程式語言。它在繼承c和c 強大功能的同時去掉了一些它們的複雜特性 例如沒有巨集以及不允許多重繼承 c 綜合了vb簡單的視覺化操作和c 的高執行效率,以其強大的操作能力...
雙引號 單引號 破折號 省略號的作用和例句
雙引號 引語指行文中引用他人的話。成語 格言 詩詞等,也包括擬聲詞 音譯詞。特定稱謂指具有某些特點的名稱 簡稱 專用術語以及紀念日等。特殊含義指引號中的詞語在其具體的語言環境中產生了新的意思。1 表示引用的部分 2 表示特定的稱謂或著重指出的部分 3 用於具有特殊含義的詞語 4 引號裡面還要用引號時...