在命令列中,用引號括住文字是相當標準的做法,特別是在處理名稱中有空格的檔案時,但是如何知道是使用單引號還是雙引號?讓我們來看看它們的區別,以及何時應該使用其中一種。
一般的規則是雙引號仍然允許擴充套件引號中的變數,而單引號則不允許。請繼續閱讀。
如果你只是簡單地把幾個單詞的文字括起來,你用哪一個並不重要,因為它們的作用完全相同。例如,這兩個命令都將建立一個名為Test directory的目錄:
mkdir "Test Directory" mkdir 'Test Directory'
更有經驗的型別可能會注意到,如果需要,還可以使用mkdir Test\Directory。
在命令列上處理變數時,單引號和雙引號之間的區別變得更加重要。預設情況下,bash將把$test之類的變數擴充套件為完整字串。首先,我們將分配變數:
test="This is a test"
現在您可以在命令列上使用這個變數,如下所示,它只需將這是一個測試輸出到控制檯:
echo $test
這裡是雙引號和單引號之間的區別變得更加明顯,當你使用單引號時,變數不會被擴充套件。例如,如果執行以下命令:
echo '$test'
當您使用單引號時,在命令列上只會看到“$test”,但當您使用雙引號時,它會正確輸出:
當您在命令列中使用`字元展開命令時,也可以使用同樣的方法。例如,假設您想在另一個命令中使用pwd命令,您可以使用backticks來告訴shell展開它:
echo `pwd`/test
如果您在主資料夾中,您會看到如下輸出:
/home/geek/test
例如,您所在的資料夾路徑中有一個空格,您希望使用ln命令建立指向當前目錄中檔案的符號連結。在使用ln命令時,通常需要指定完整路徑,因此使用“pwd”儲存鍵入要容易得多。
看看當您嘗試使用命令而不使用引號時會發生什麼:
ln –s `pwd`/test /home/geek/linkedname
相反,您需要用引號括起來:
ln –s "`pwd`/filename" /some/other/path
對於一個更具體的示例,假設我們有一個類似於此示例的資料夾結構,其中所有檔名中都有空格:
由於unzip命令不支援使用*對所有檔案執行它,因此您需要改用for命令。下面是事情變得有趣的地方:
for f in *.zip;do unzip $f;done
哎呀!看來沒用。
我們需要做的是在$f變數周圍使用雙引號,如下所示:
for f in *.zip;do unzip "$f";done
現在,每次for命令透過迴圈時,它實際上都會執行這樣一個命令:
unzip "test 1.zip"
當然,它會迴圈並對目錄中的每個檔案執行類似的命令。
既然我們已經看完了這些例子,我們將快速回顧一下,以防您錯過:
雙引號
單引號
就這樣結束了引用的課程。明智地使用它們。
關鍵區別——java中的變數與資料文字 計算機程式是執行一項任務的一組指令。程式設計時需要儲存資料。因此,這些資料被儲存在儲存器中。這些保留的記憶體位置稱為變數。變數應該有唯一的名稱,因為它們應該易於識別...
... Python中的字串可以定義為一系列字元。它們是不可變的,這意味著一旦宣告它們就不能修改。相反,為操作目的建立字串副本。 ...
...電子郵件”工作表中,您需要建立一個標題。此電子表格中的每一行將代表一封將被髮送出去的單獨電子郵件。所以在這個例子中,我為收件人的姓名,他們的電子郵件地址,以及我要在指令碼中拼湊的資訊片段建立了一個表。...
... bash指令碼只是一個純文字檔案,其中包含bashshell可以讀取和執行的一系列命令。Bash是catalinamacos之前版本和大多數Linux發行版中的預設shell。 ...
...現這一點。假設文字檔案位於C:\Test\檔案.txt,命令提示符中的以下命令將顯示其內容: type C:\Test\File.txt 偉大的。現在,如果您在C:\Test Folder\Test中有相同的檔案呢檔案.txt?如果您嘗試執行下面的命令,它將不起作用,因為檔案...
...能。 回聲?回聲! 大多數Linux系統提供兩個版本的echo。bashshell內建了自己的echo,還有一個二進位制可執行版本的echo。 透過使用以下命令,我們可以看到兩個不同的版本: type echo whereis echo type命令告訴我們作為引數傳遞給它...
使用別名和bashshell函式建立自己的Linux命令。馴服重複性的任務,截斷冗長的程序,並用您經常使用且難以記住的選項配置標準命令。 別名和shell指令碼是Linux和類Unix作業系統中的強大技術,允許您將命令列體驗磨練為您想要的...
如果您想在Linux、macOS或其他類似UNIX的系統上掌握bashshell,那麼特殊字元(如~、*、|和>)是至關重要的。我們將幫助您解開這些神祕的Linux命令序列,成為象形文字的英雄。 什麼是特殊字元(special characters)? bashshell以兩...
...當我引用這段文字時”,引號是成角度的。這和“It's”中的撇號是一樣的。而且,如果你在iOS上輸入兩個連字元,一行中沒有空格(-),它們就會轉換成實際的em破折號(-)。聰明的標點符號讓文字看起來更聰明。 那麼,你為...
...edImages/image 注意:對於本文中顯示的所有命令,請將命令中的第一個路徑和PDF檔名替換為原始PDF檔案的路徑和檔名。第二個路徑應該是要將提取的影象儲存到的根資料夾的路徑。第二條路徑末尾的單詞“image”表示您想在檔名前...