shell指令碼常用方法總結
阿新 • • 發佈:2021-08-06
shell指令碼給字串新增顏色
字顏色:
echo -e "\033[30m 黑色字 \033[0m" echo -e "\033[31m 紅色字 \033[0m" echo -e "\033[32m 綠色字 \033[0m" echo -e "\033[33m 黃色字 \033[0m" echo -e "\033[34m 藍色字 \033[0m" echo -e "\033[35m 紫色字 \033[0m" echo -e "\033[36m 天藍字 \033[0m" echo -e "\033[37m 白色字 \033[0m" 字背景顏色: echo -e "\033[40;37m 黑底白字 \033[0m" echo-e "\033[41;37m 紅底白字 \033[0m" echo -e "\033[42;37m 綠底白字 \033[0m" echo -e "\033[43;37m 黃底白字 \033[0m" echo -e "\033[44;37m 藍底白字 \033[0m" echo -e "\033[45;37m 紫底白字 \033[0m" echo -e "\033[46;37m 天藍底白字 \033[0m" echo -e "\033[47;30m 白底黑字 \033[0m" 字型變為紅色並且不停的閃爍: echo -e "\033[31m \033[05m 北京歡迎你 \033[0m"
shell指令碼判斷執行使用者
#!/bin/bash if [ `whoami` == "root" ];then echo "是root使用者執行" fi
shell指令碼中的一些特殊變數
$$ shell本身的PID $! shell最後執行的後臺Process的PID $? 最後執行的命令的結束程式碼(返回值) $# 列印傳入shell的引數個數 $0 shell本身的檔名 $1~$n 新增到Shell的各引數值。$1是第1引數、$2是第2引數
$@和$*的區別 $@和$*都有列印傳入shell的所有變數的意思; 舉個例子說明吧 [root@jump ~]# cat aaa.sh #!/bin/bash fun() { echo "$#" } echo '"$@" 的引數為' $@ echo '"$*" 的引數為' $* echo '"$@" 的引數個數 '$(fun "$@") "個" echo '"$*" 的引數個數' $(fun "$*") "個" 執行結果: [root@jump ~]# bash aaa.sh 1 2 3 "$@" 的引數為 1 2 3 "$*" 的引數為 1 2 3 "$@" 的引數個數 3 個 "$*" 的引數個數 1 個 結論: 當aaa指令碼執行後,$@的引數為"1" "2" "3";$*的引數為"1 2 3";所以$@的引數數量為3個;$*的引數數量為1個;
shell指令碼中的比較
-eq 等於 -ne 不等於 -gt 大於 -lt 小於 ge 大於等於,注意沒有"-" le 小於等於,注意沒有"-"
shell的邏輯與或非
邏輯與 "-a" if [command1 -a command2] 兩個條件都要滿足 邏輯或 "-o" if [command1 -o command2] 兩個條件只要滿足1個即可 邏輯非 "!" if [! command] 條件表示式的相反結果 ###第二種方式### &&運算子 command1 && command2 command1執行結果為真,則command2才能夠被執行;只要有一個命令的執行結果為假,則後面的命令就不會被執行;實現邏輯與的功能; ||運算子 command1 || command2 command1執行結果為假,則執行command2;實現邏輯或的功能;