2021-05-12 14:32:11
Linux基礎之-元字元
Bash中的特殊字元,鍵盤上能敲出來的特殊字元都有其特殊意義,強調一點:元字元是被shell解釋的。
1. '',取命令的執行結果
[root@linuxidc ~]# ls
4.txt anaconda-ks.cfg a.txt B.txt c.txt D.txt nginx-1.10.3 nginx-1.10.3.tar.gz
[root@linuxidc ~]# res=`ls` #取命令的執行結果,賦值給變數res
[root@linuxidc ~]# echo $res #檢視變數res的值
4.txt anaconda-ks.cfg a.txt B.txt c.txt D.txt nginx-1.10.3 nginx-1.10.3.tar.gz
2. $(),同上,但它彌補了''的巢狀缺陷
[root@linuxidc ~]# res=`echo `ls`` #巢狀使用後無法達到預想的效果:取echo 一堆檔名的效果。
[root@linuxidc ~]# echo $res
ls
[root@linuxidc ~]# res=$(echo $(ls)) #替代方案
[root@linuxidc ~]# echo $res
4.txt anaconda-ks.cfg a.txt B.txt c.txt D.txt nginx-1.10.3 nginx-1.10.3.tar.gz
3. ~, 家目錄
[root@linuxidc tmp]# cd ~
[root@linuxidc ~]# pwd
/root
4. !
a !,取非
[root@linuxidc ~]# ls /dev/sda
sda sda1 sda2
[root@linuxidc ~]# ls /dev/sda[0123]
/dev/sda1 /dev/sda2
[root@linuxidc ~]# ls /dev/sda[!01]
/dev/sda2
b !,歷史命令呼叫
[root@linuxidc ~]# !343
hostname
linuxidc
c !,匹配最近一次歷史命令
[root@linuxidc ~]# !ls
ls /dev/sda[!01]
/dev/sda2
d ! ,帶空格 將命令的返回值取反
[root@linuxidc ~]# echo ok
ok
[root@linuxidc ~]# echo $? #上一條命令執行的結果,0代表執行成功,非0代表執行失敗
0
[root@linuxidc ~]# ! echo ok #將結果取反
ok
[root@linuxidc ~]# echo $?
1
0-255之間,0則為真,非0位假
6. @,無特殊含義
7. # 注釋
8. $
a $,變數取值
b $() 同``
c ${},變數名的範圍
d $[],整數計算 echo $[2+3] - * / % 浮點數用 echo "scale=3; 10/3" | bc -l
[root@linuxidc ~]# money=10
[root@linuxidc ~]# echo $money
10
[root@linuxidc ~]# echo 00000$money
0000010
[root@linuxidc ~]# echo $money0000
[root@linuxidc ~]# echo ${money}0000
100000
9. %
a 殺後台進程 jobs號
b 取模
10. ^,
a 取非,和!雷同
[root@linuxidc ~]# ls /dev/sda[^01]
/dev/sda2
[root@linuxidc ~]# ls /dev/sda[!01]
/dev/sda2
b 替換
[root@linuxidc ~]# systemctl restart network
[root@linuxidc ~]# ^network^sshd^
systemctl restart sshd
11. &
a 後台執行
b &&,邏輯與
12. *
a 匹配任意長度字串
b 計算乘法
13. (),在子進程中執行
[root@linuxidc ~]# x=1
[root@linuxidc ~]# (x=666)
[root@linuxidc ~]# echo $x
1
[root@linuxidc ~]#
[root@linuxidc ~]# (x=666;echo $x)
666
14. -
a 減號
b 區間
c cd -
15. _,無特殊含義
16. +,加號
17. =,賦值
18. |
a |,管道
b ||,邏輯或
19. ,跳脫
[root@linuxidc test]# echo
[root@linuxidc test]# echo '
'
[root@linuxidc test]# echo "'"
'
20. {},命令列表 #括號內的開頭和結尾必須是空格
# { ls; cd /; }
21. [],字元通配,匹配括號內之一
22. :,
a 空命令
b 真值
[root@linuxidc ~]# :
[root@linuxidc ~]# echo $?
0
23. ;,可以接多個命令:ls;pwd;echo 123;無論對錯,會一直執行到最後一條命令
24. "",軟引, '',硬引
[root@linuxidc test]# x=1
[root@linuxidc test]# echo "$x" #雙引號的代表軟參照,引號內特殊字元有特殊意義,比如$,``等
1
[root@linuxidc test]# echo '$x' #單引號代表硬參照,引號內所有字元都無特殊意義
$x
25. <,輸入重定向
26. >,輸出重定向
27. >>,追加
28. <<,here document ???
29. >&,合併2和1輸出
30. ,逗號,列舉分隔符
31. .點,source ,當前目錄
32. /,目錄分隔符
33. ?,萬用字元,任一字元
34. 回車符,命令執行
35. *,萬用字元,任意字元
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-03/142093.htm
相關文章