国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 幫助中心 > 正文

shell 里面的奇葩字符實現(xiàn)

2024-07-09 22:43:12
字體:
來源:轉載
供稿:網友

在我接觸過的編程語言里面,最奇葩的兩個就屬 JavaScript 和 Shell 了。因為它們有著太多的語法糖跟特殊字符,總是能夠讓你措手不及,并且編程習慣也跟Java 和 Python 等語言大相徑庭。總之,千萬不要因為它們是腳本語言就輕視它們,否則你就會被打得暈頭轉向。

這兩個奇葩之間比起來呢,Shell 的奇葩之處在于特殊符號多,騷操作也多。比如你以為 .  這是個點,其實它代表的意思遠不止一個點那么簡單 。

下面的內容是我根據(jù)網上資料及平時使用經驗整理的一份Shell 中的特殊字符。如果大家覺得有用的話就點贊收藏吧。

; 單分號,一般作為命令分隔符。可以將兩個命令放在同一行。如: echo hello; echo there,但真正寫腳本的時候盡量不要這樣寫。

;; 雙分號,用在 case條件語句的結束符。如:

case "$variable" in abc) echo "/$variable = abc" ;; xyz) echo "/$variable = xyz" ;;esac

% 百分號,用于表示取余操作,也用于正則表達式。

~  波浪線,表示家目錄,等價于$HOME。如 cd ~

~+  表示當前工作目錄,等價于$PWD。

~-  表示上一個工作目錄,等價于 ..。

|  管道標識符,將上一個命令的輸出作為下一個命令的輸入,經常用到,沒什么好說的。

>|  強制重定向。強制重寫已經存在的文件。

||  表示邏輯或操作。

&  讓命令在后臺運行,例如 command &  一般用于啟動后臺進程服務。

&&  表示邏輯與操作。

* 星號,主要用于通配符匹配,當然也用于乘法表達式。

/ 主要用于轉義特殊字符,比如想轉義雙引號,可以這樣 echo /" 輸出 “。

/  文件路徑分隔符,比如 /opt/app/projects/ 。當然也用作除法表達式。

. 點號,這個符號作用比較多。 首先可以等價于 source 命令。也可以作為文件名字,在文件名開頭,表示該文件是個隱藏文件。 還可以表示當前目錄, 比如拷貝某個文件到當前目錄 cp /opt/app/a.md . 。如果是兩個連續(xù)的點則表示上一級目錄,比如 cd ..。
最后,點號也是正則表達式的元字符。

"  雙引號,雙引號里面的變量一般會被解析成賦值的內容。比如

 name=frank echo "hello $name" # hello frank

' 單引號,單引號里面的變量一般不會被解析,比如

 name=frank echo 'hello $name' #hello $name

' 反引號(ESC鍵下面那個),要跟單引號區(qū)分開。反引號里面的內容會被當作指令執(zhí)行,并將執(zhí)行的結果賦值給變量。比如:

file=`ls ~`echo $file #家目錄下所有文件。

!  感嘆號,一般用于取反。比如 != 表示不等。騷操作在終端中執(zhí)行,可以表示歷史指令比如 !-3,將會輸出你剛剛輸入的指令。但在腳本中不支持該種寫法。

**  雙星號,算術運算中表示求冪運算。比如

let "a=3**2"echo $a #9

?  問號,表示條件測試;也用作三元運算符。也是正則表達式元字符。

$  美元符,放到變量前面,即引用一個變量的內容,比如:echo $PATH;當然也是正則表達式的元字符。

${} 參數(shù)替換。用于在字符串中表示變量值。比如

name=frankecho "hello ${name}" #hello frank

$*,$@ 這兩個特殊字符都用于獲取傳遞給腳本的所有參數(shù)。當他們被雙引號包圍時,"$*"會將所有的參數(shù)從整體上看做一份數(shù)據(jù)。而"$@"仍然將每個參數(shù)都看作一份數(shù)據(jù),彼此之間是獨立的。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 百色市| 遵义市| 呈贡县| 钟祥市| 鲁山县| 浙江省| 客服| 满洲里市| 龙陵县| 三台县| 焦作市| 神农架林区| 屯昌县| 张家港市| 论坛| 建德市| 舞阳县| 屏山县| 博客| 南澳县| 眉山市| 湾仔区| 利津县| 溆浦县| 正定县| 商水县| 太仆寺旗| 唐河县| 丰城市| 永春县| 大悟县| 广德县| 宜兰县| 鄂州市| 油尖旺区| 读书| 巴南区| 纳雍县| 专栏| 汶川县| 邳州市|