這篇文章主要為大家總結了關於Shell中特殊字符的相關資料,文中包括分好、&、#、! 、$、大於號、單雙引號等等一系列特殊字元的用法,透過範例程式碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
前言
眾所周知shell既是類別Unix作業系統的命令解析器,用來解釋執行使用者輸入的一連串指令,它類似於DOS下的command和後來Windows的cmd.exe。同時shell也是一種程式設計語言。作為命令解釋型的腳本語言,它交互式解釋和執行用戶輸入的命令或自動地解釋和執行預先設定好的一連串的命令;作為程式設計語言,它預定義了各種環境變量,保留了一些關鍵字以及一些特殊字元的含義,並提供了許多在高階語言中才具有的控制結構,包括循環和分支判斷。
本文將介紹給大家關於Shell特殊字元用法的相關內容,話不多說,來一起看看詳細的介紹:
1、;分號
連續運行指令
# ifdown eth0;ifup eth0
2、| 管道
正規表示式中表示或
# echo "ooooee" |egrep '(oo|ee)'{2} 表示匹配 oooo 或者 eeee 的字符
前面指令的標準輸出作為後面指令的標準輸入
# ifconfig|grep eth0 表示ifconfig查出来的信息然后过滤出eth0的这一行
3、&
#將指令放到背景執行
# mysqld_safe --user=mysql & 将MySQL放到后台启动
表示標準輸出與標準錯誤輸出
# ifconfig &>/dev/null 将ifconfig执行得到的结果输出到/dev/null里面
##4、 &&
# ls && echo "ok"
5、||
# lls || echo "ok"
6、# 井號
# echo $# 0
# a='hello' # echo ${#a} 5
# a=(1 2 3) # echo ${#a[@]} 3
7、!驚嘆號
# if ! [ 1<2 ]; then echo 'ok'; else echo 'no'; fi ok
# history 1 ls 2 tail test1.txt 3 mysql -uroot -p123 4 ls /tmp/ 5 cd /tmp/ [root@localhost ~]# !994 ls /tmp/ account.sql data.sql mysql.sock t1.txt t2.txt
${!a} ---- 間接取b 的值
8、$ 美元符號
# a=10 # echo $a 10
egrep ':$' /etc/inittab egrep ‘^hello$' file
9、> 大於號碼
echo '123' >test.txt 表示将123 输入到文件test.txt中 条件测试中的大于号
11、< 小於號碼
##變數賦值- 例如:設定變數a=10
條件測試中的等- 例如:[ a=b ] 判斷變數a是否等於b
數值比較== - 例如:(( a==20 )) 判斷變數a是否等於20
#12、+ 加號 ##算術運算中的加號- 例如:1+3
正規表示式中1個或多個前面的字元- 例如:ab+c 表示符合ab和c之間有1個或多個字元
#輸出重定向追加- 例如:
echo "123" >> test.txt
here document
例如:
# passwd <<end > 123 > 123 > end
更改使用者root 的密碼。
#算術運算中的減號- 例如:10-2
指令的選項- 例如:ls -l
上一次工作目錄- 例如:cd -
通配符和正規表示式中表示範圍- 例如:[a-z]
tar -cvf - /home | tar -xvf -
表示輸出流或輸入流
將前面的輸出,透過管道交給後面的指令,前面的壓縮,後面的解壓縮
解决变量赋值空格的问题 例如:a='1 2' 阻止shell替换 17、"" 双引号 解决变量赋值空格的问题 例如:a="1 2" 阻止shell部分字符替换,对$、!等无效 18、`` 反引号 相当于 $() 命令行替换 例如:可以设变量a=`ls` 19、% 百分号 算术运算中的模运算 例如: vi中替换操作中表示所有行 (末行模式下,替换所有前面加 %) 例如:在末行模式下输入 :% s/D/d 表示将文本中的所有的D替换为d 20、() 单圆括号 子shell中执行命令,会继承父shell的变量 括起数组元素 例如:定义一个数组 a=(1 2 3 4) 21、(()) 双圆括号 算术运算 例如: 整数比较测试 例如: 22、[] 单方括号 通配符和正则中表示匹配括号中的任意一个字符 例如: 条件测试表达式 例如: 数组中下标括号 例如: 23、[[]] 双方括号 字符串比较测试 例如: 24、. 英文句点号 正则中表示任意1个字符 例如: 当前shell执行脚本命令 例如: 表示当前目录 例如: 25、{} 大括号 通配符扩展 abc{1,2,3} 正则表达式中表示范围 例如:a{3} 匹配3个 a 匿名函数 { } 里面的命令,是在当前shell执行 注意: { } 第一条命令前面要有空格,后面的命令要有分号 括起变量名 26、/ 正斜杠 算术运算中的除法 例如: 根目录或路径分割符 例如: 27、^ 在通配符中表示取反 例如:[^abc] 表示匹配除了abc外的任意一个字符 在正则表达式中表示以什么开头 例如: 以上是總結Shell中的特殊字符的詳細內容。更多資訊請關注PHP中文網其他相關文章!echo $((100%10))
就是100除以10的余数为0echo $((10/2))
结果就是5(( 10>2 ))
判断10是否大于2 [abc]
表示匹配abc中的任意一个字符[ -f /etc/passwd ]
// 测试是不是文件echo ${a[0]}
表示取数组中下标为0的值[[a=b]]
用来字符串的比较a...b
表示 匹配 a和b之间夹三个字符的字符串./test.sh
执行当前路径下的shell脚本test.shcd ./bgk
进入当前目录下的bgk目录下for i in {1...10}
循环指定范围{ cmd1;cmd2;cmd3;} &> /dev/null
${abc}a
echo $((10/2))
结果就是5cd /usr/local/
表示路径egrep ‘^hello$' file