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命令被執行
在javascript中雙引號和單引號有什麼詳細的區別
雙引號 和單引號 都是一樣的,用雙引號開頭就要用雙引號結束,用單引號開頭就要用單引號結束,單引號中可以巢狀雙引號,雙引號中可以巢狀單引號,沒什麼區別,只有在巢狀時,如果外面是雙引號,裡面必須為單引號,如果外面是單引號,裡面必須為雙引號。相互巢狀,看誰在最外面 但是雙引號不能巢狀雙引號,需要轉義,同理...
關於C 中單引號,雙引號的使用
雙引號引起字串,單引號引單個字元 ascii碼 只是少了一句,單引號引多個字元是字元的編碼組成的整數。雙引號引起字串且末尾預設加有 0,即 字串 0 單引號引單個字元。cout c1 是輸出字元c1 此時的c1並不是變數,而是字元 的十進位制 ascii碼。下面是我在你的基礎上改的 include ...
向MySQL資料庫插入單引號或雙引號
mysql值中需要單引號使用 insert into mytable text values i m sail mysql是一個關係型資料庫管理系統,由瑞典mysql ab 公司開發,目前屬於 oracle 旗下產品。mysql 是最流行的關係型資料庫管理系統之一,在 web 應用方面,mysql是...