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

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

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 |'"'|

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

EXCEL中雙引號和單引號中的數字有什麼區別

單引號就是輸入的是文字雙引號需在 號後面,指引用的是文字find中查詢目標值的位置,在你的比如中就是第一位,故顯示1如果是find b 結果為2,即第二位. 都是表示文字格式的8,但兩者使用的地方不同。前者只有在公式中才能實現。直接在單元格輸入 8 還是顯示輸入的樣式 8 後者是直接在單元格中指定8...

雙引號的作用,雙引號的作用是什麼?雙引號有哪些用法?

表示文中引用的部分。引號有雙引號和單引號兩種。一般用雙引號,引文內還有引文,就用單引號。雙引號和單引號反覆使用。直接引用別人的話,用引號 間接引用別人的話,不用引號。連續引用幾個文段時,每段開頭都要用前引號,只在最後一段用後引號。引號的作用主要有 a 表示引語 b 表示特定稱謂 c 表示特殊含義需要...

shell指令碼中的單引號和反引號經常混淆,請高手幫我區別它們的功能,謝謝

小米飛貓 單引號內忽略掉所有特殊字元 反引號能夠將一個命令的標準輸出插在一個命令列中任何位置 單引號原樣輸出,你可以記為 單調輸出 如下原樣輸出 eval echo a 這個字串,很單調吧 echo eval echo a 反引號執行內容後輸出,可以記為 反譯輸出 要把引號中的內容反向翻譯一下,如下...