tft每日頭條

 > 圖文

 > linux單引号中怎麼引用變量

linux單引号中怎麼引用變量

圖文 更新时间:2024-07-02 02:53:55

引用符号在解析器中保護特殊元字符和參數擴展,其使用方法有3種:反斜杠(\),單引号(’‘),雙引号(“”)

單引号和雙引号必須匹配使用,均可在解析器中保護特殊元字符和通配符,但是單引号(硬轉義)主要用于信息的原樣輸出,防止任何變量的擴展,雙引号(軟轉義)允許變量擴展、轉義符和命令替換。單引号保護雙引号,雙引号保護單引号。

1. 反斜杠

反斜杠通過解析器将1個字符轉化為引用符号或轉義。

1)在單引号内使用反斜杠,反斜杠不會被解析,保持原樣輸出。

2)在雙引号内使用反斜杠,主要用于美元符号($),反單引号(``),雙引号(""),單引号('')的輸出,以及轉義符的解析,其中單引号的輸出中,反斜杠和雙引号不能同時使用。

3)不使用單引号和雙引号(如:echo \,輸出為空),則反斜杠可以被看做自動忽略。

2. 單引号

1)單引号内不允許任何變量、元字符、通配符、轉義符的解析,均被原樣輸出。

2)使用雙引号或反斜杠轉義可顯示輸出單引号,但是雙引号和反斜杠不能被同時使用。

如命令:echo “\'”,輸出結果會為(\'),而不是(')

3)可解析正則表達式,與sed和grep命令配合使用

3. 雙引号

保護特殊元字符和通配符不被shell解析,但是允許變量和命令替換,以及轉義符的解析。

4. 附錄

在此順便學習一下linux常見的特殊字符,包括通配符、轉義符和元字符。

4.1 通配符(wildcard)

通配符實際上是一種shell實現的路徑擴展功能,當shell在“參數”中遇到通配符後,會将其當做路徑或文件名在磁盤上搜尋可能的匹配,以下表格中列出了比較常用的shell通配符,以供大家參考和學習。

字符含義實例*匹配一個或多個字符a*b a與b之間可以有任意長度的字符?匹配任意一個字符a?b a與b之間必須也隻能有一個字符[list]匹配list中任意單一字符a[xyz]b a與b之間必須也隻能有一個[xyz]之間的字符

a[0-9]b a與b之間必須也隻能有一個0-9之間的數字字符

a[!0-9]b a與b之間有且隻有一個字符,同時字符不能為0-9

{string list}匹配字符串列表中的任一字符串a{abc,xyz,123}b a與b之間隻能為abc或xyz或123

需要說明的是,通配符與正則表達式語句有些相似,但它與正則表達式不同,隻能将其理解為shell特殊字符即可,而且隻涉及*,?,[]和{}。

4.2 元字符(Meta)

字符說明;命令分隔符,在前一個命令結束時,忽略其返回值,繼續執行下一個命令&後台運行命令,最大的好處是無需等待命令執行結束,就可以在同一命令行下繼續輸入命令=變量名=值,為變量賦值。注意"="左右緊跟變量名和值,中間不要有空格$變量值替換,"$變量名"替換為shell變量的"值",為避免在文本連接時混淆,請使用${變量名}>輸出重定向,prog > file 将标準輸出重定向到文件(覆蓋原文件内容)>>輸出重定向,prog >> file 将标準輸出追加到文件<輸入重定向,prog < file 從文件file中獲取标準輸入|管道命令,例:p1 | p2 将p1的标準輸出作為p2的标準輸入()在子shell中執行命令,或用于運算,或用于命令替換($(command)){}在當前shell中執行命令,或用在變量替換的界定範圍(例如上面的${變量名}用法)&&前一個命令執行成功後,才繼續執行下一個命令。例:p1 && p2 ,若p1執行成功後,才執行p2,反之,不執行p2||前一個命令執行失敗後,才繼續執行下一個命令。例:p1 || p2 ,若p1執行成功後,不執行p2,反之,才執行p2!執行曆史記錄(history列表)中的命令,如!1~用戶主目錄

4.3 轉義符

shell提供的轉義符有3中:單引号(''),雙引号(""),反斜杠(\)。轉義符已在上述内容中進行了詳細介紹,在此隻是對其做一個簡單總結。

字符說明''(單引号)硬轉義,其内部所有的shell元字符、通配符等都不會被解析,用于參數的原樣輸出。注意,硬轉義中不允許再出現單引号""(雙引号)軟轉義,可用于保護元字符和通配符,但是允許變量和命令替換的擴展,也允許反斜杠轉義符的解析\(反斜杠)轉義,保護元字符或通配符不被shell解析,主要用于雙引号,單引号,反單引号和美元符号

與echo和sed連用時,常用的反斜杠轉義字符如下表所示:

轉義符意義\a響鈴字符\b後退符,即删除前一個字符\c輸出不換行,與/n作用相反\d以“星期、月、日”表示日期\f換行,但光标仍停留在原處\h或\H顯示基本主機名或顯示完整的主機名\t或\T24小時或12小時制時間\n輸出換行\r光标移至行首,并且不換行\s當前shell的名稱,如bash\t插入Tab鍵\u當前登錄shell的用戶名\vBash版本\w當前工作目錄\W當前工作目錄的基名\\反斜杠\\,有無雙引号,結果相同\$美元符号$,有無雙引号,結果相同\"雙引号“,有無雙引号,結果相同\'單引号’,不能與雙引号同時使用\`反單引号`,有無雙引号,結果相同\nnn插入八進制所代表的ASCII字符

linux單引号中怎麼引用變量(每日linux命令學習-引用符号)1

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved