国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 安阳市| 青铜峡市| 新巴尔虎右旗| 朝阳区| 吉安市| 壤塘县| 聂拉木县| 客服| 宁都县| 汉沽区| 河北区| 安仁县| 房产| 德州市| 临夏县| 南通市| 济宁市| 佛坪县| 石泉县| 临高县| 灌阳县| 冕宁县| 古蔺县| 新化县| 张家港市| 汝阳县| 平泉县| 罗平县| 濉溪县| 宣武区| 西乌珠穆沁旗| 天镇县| 长葛市| 通江县| 高平市| 张北县| 和硕县| 资阳市| 兴安盟| 灵丘县| 阳信县|