linux中的單引號和雙引號有什麼區別嗎

時間 2021-08-30 09:49:17

1樓:匿名使用者

單引號與雙引號的最大不同在於雙引號仍然可以保有變數的內容,但單引號內僅能是

一般字元 ,而不會有特殊符號。我們以底下的例子做說明:假設您定義了一個變數,

name=vbird ,現在想以 name 這個變數的內容定義出 myname 顯示 vbird its me 這

個內容,要如何訂定呢?

[root@linux ~]# name=vbird

[root@linux ~]# echo $name

vbird

[root@linux ~]# myname="$name its me"

[root@linux ~]# echo $myname

vbird its me

[root@linux ~]# myname='$name its me'

[root@linux ~]# echo $myname

$name its me

發現了嗎?沒錯!使用了單引號的時候,那麼 $name 將失去原有的變數內容, 僅為

一般字元的顯示型態而已!這裡必需要特別小心在意!

本文出自 51cto.com技術部落格

2樓:匿名使用者

當然有區別了

在cu上面有專門的帖子解釋單引號和雙引號的差別

舉個最簡單的例子

lix@lxlaptop:~/bash/lx/done/pms$ a=127711

lix@lxlaptop:~/bash/lx/done/pms$ cat date.log |grep "$a"

mon jun 21 17:00:02 cst 2010 1277110506 1277110802 296

mon jun 21 17:15:03 cst 2010 1277111651 1277111703 52

mon jun 21 17:30:02 cst 2010 1277112247 1277112602 355

lix@lxlaptop:~/bash/lx/done/pms$ cat date.log |grep '$a'

lix@lxlaptop:~/bash/lx/done/pms$

3樓:匿名使用者

說到引號的區別,先要說為什麼要用引號,shell命令中有些特殊字元,比如$,^,*等等,如果我們想要把這些特殊字元的功能關掉的話就必須使用引號或者斜槓\,比如 ls "a*",或者ls 'a*',或者ls a\*這就會輸出名字為a*的檔案,而不是以a開頭的檔案。

不說斜槓,只說單引號和雙引號的區別,它們在shell中的引文的叫法不一樣,雙引號叫soft quote,單引號叫hard quote,顧名思義,單引號更加嚴格,比如overawe的例子,對於$符號,單引號一樣會關掉它的功能,而雙引號不會,它會把它當成變數來替換掉,有興趣的話你可以比較單引號套雙引號的變數和雙套單的變數輸出的區別,a=1;echo "'$a'" ;echo '"$a"'

希望對你有幫助

求問python中的單引號和雙引號有什麼區別

4樓:育知同創教育

先說1雙引號與3個雙引號的區別,雙引號所表示的字串通常要寫成一行

如: s1 = "hello,world"

如果要寫成多行,那麼就要使用\ (“連行符”)吧,如

s2 = "hello,\

world"

s2與s1是一樣的。如果你用3個雙引號的話,就可以直接寫了,如下:

s3 = """hello,

world,

hahaha.""",那麼s3實際上就是"hello,\nworld,\nhahaha.", 注意“\n”,所以,

如果你的字串裡\n很多,你又不想在字串中用\n的話,那麼就可以使用3個雙

引號。而且使用3個雙引號還可以在字串中增加註釋,如下:

s3 = """hello, #hoho, this is hello, 在3個雙引號的字串內可以有註釋哦

world, #hoho, this is world

hahaha."""

這就是3個雙引號和1個雙引號表示字串的區別了,3個雙引號與1個單引號的區別也

是和這個一樣的,實際上python支援單引號是有原因的,下面我來比較1個單引號和

1個雙引號的區別。

當我用單引號來表示一個字串時,如果要表示 let's go 這個字串,必須這樣:

s4 = 'let\'s go',注意沒有,字串中有一個',而字串又是用'來表示,所以

這個時候就要使用轉義符 \ (\,轉義符應該知道吧), 如果你的字串中有一大堆

的轉義符,看起來肯定不舒服,python也很好的解決了這個問題,如下:

s5 = "let's go"

這時,我們看,python知道你是用 " 來表示字串,所以python就把字串中的那

個單引號 ' , 當成普通的字元處理了,是不是很簡單。

對於雙引號,也是一樣的,下面舉個例子

s6 = 'i realy like "python"!'

這就是單引號和雙引號都可以表示字串的原因了。

linux 中的單引號 和雙引號有什麼區別嗎

5樓:匿名使用者

單引號中是原始字串

雙引號可以對特殊字元進行擴充套件,如

a=bcdef

echo "$a" #雙引號將進行變數擴充套件 ,輸出bcdefecho '$a' #單引號直接輸出$a

6樓:零格格藤載

沒有區別,都是字串,但bash中有一個字元要特別注意,那就是~下的點號“`”,它不是單引號,用它括起來的字串,linux會按命令來執行,並把結果轉為字串。

請教linux shell命令中雙引號與單引號巢狀的問題

7樓:12345額時代

1、首先在linux系統中,使用echo $ 0來顯示如下輸出。

2、檢視linux系統上可用的所有shell,檔案/ etc / shells中列出了linux系統上可用的所有shell。 可以使用cat命令或更少的命令來檢視檔案的內容。

3、更改shell以使用另一個shell,要使用其他shell,只需輸入其名稱即可登入新shell。

4、永久更改linux中的預設shell,linux允許您使用chsh命令更改預設shell。 為您自己的登入使用者更改預設shell的最佳方法是,使用-s選項指定/ etc / shells檔案中列出的shell名稱。

8樓:

echo ' " '$addr' " '="$addr" =addr的值

系統沒那麼聰明 他看到前面2個單引號就以為是一對了 他哪知道第一個和第4個才是一對

樓主真是人才 沒事拿這引號來出氣 整這麼多引號btw:你得需求我愣是沒看明白 可能是我領悟能力太差了吧 祝你學習順利

9樓:匿名使用者

建議你看看 bash 的源**,我覺得可能他只支援兩層的引號呼叫。

之後因為你的三層引號,導致 bash 處理出現問題了吧?

我覺得可能會是:

引號顯示部分只處理到第二級引號,後面被忽略。

變數處理實現部分是一直處理過來,所以**引號導致前面兩部都有雙引號,使得引號處理**認為只有兩級,但因為一直處理過來,所以前面只要遇到雙引號,就會 mask 一個 bash 變數,認為以雙引號開始。之後處理所有變數。

10樓:委思

只要是在雙引號裡的變數$都能生效

沒必要這麼複雜,用\"和\'不就行了

程式設計時邏輯清晰性也很重要,讓別人也能看懂

11樓:防塵一男

echo '"'$addr'"' 結果是 "192.168.0.111"

單引號裡面不能出現單引號,就算轉義也不行,所以這個系統是echo |'"' | $addr |'"'|

變數前面的倆個單引號是一對,變數後面的是一對

PHP單引號雙引號問題,PHP單引號雙引號問題

php中.的作用是連線字串,mysql查詢語句中所有的字串都要用單引號括起來,為了防注入,數字也可以用單引號括起來,假設 i 1 你的查詢語句在php下就是 insert into student id,name,age,email values 1 aaa 10 aaaa bbb.com 整個字串...

c 的單引號和雙引號的區別,C 的單引號和雙引號的區別

秋冬春夏丶 a 是乙個字串,它包含字元a和 0,a 只表示字元a。字串對映ascii碼,其實就是數字。 du瓶邪 是字串,c風格字串後面有乙個 0 是乙個字元,一共就一位元組。 單引號表示是字元變數值,字母的本質也是數字。雙引號表示字串變數值,給字串賦值時系統會自動給字串變數後面加上乙個 0來表示字...

html5中雙引號和單引號的區別是什麼

我賣燒餅不賣饃 單獨html標籤時,單引號和雙引號區別 輸出完全一樣,故在純html標籤下以上三種寫法是完全等效的。2.在js混編情況下html標籤的雙引號和單引號區別 轉義字串 escape sequence 也稱字元實體 character entity 在html中,定義轉義字串的原因有兩個 ...