初識shell【運算符與判斷】
阿新 • • 發佈:2018-04-28
初識shell【運算符與判斷】小白的shell之路
系統版本 Red Hat Enterprise Linux Server release 7.0
【基礎篇】
認識shell和基本運算符
1.什麽是shell腳本:
Shell 是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋梁。Shell 既是一種命令語言,又是一種程序設計語言。
Shell 是指一種應用程序,這個應用程序提供了一個界面,用戶通過這個界面訪問操作系統內核的服務。
2.查看本機現有解釋器: cat /etc/shells 3.修改用戶的shell解釋器: useradd -s /bin/ksh zhangsan 【創建用戶張三的時候指定登陸shell】 usermod -s /bin/ksh zhangsan 【修改已有用戶張三的登陸shell】 4.查看歷史命令: history vim /etc/profile 【進入配置文件】 HISTSIZE=1000 【可修改默認歷史數量】 history -c 【清空歷史命令】 5.歷史命令的應用: ![序號] 【再次執行該序號的命令】 !cat 【再次執行最近以cat開頭的命令】 6.重定向標準輸入/輸出/錯誤輸出 > 將命令執行的正常輸出重定向到文件 >>:只收集前面命令的正確輸出 2>:只收集前面命令的錯誤輸出 &>:前面命令的正確與錯誤輸出 >&2:將正確的輸出結果變成錯誤的輸出 運算符: 1.expr 【註:數字間有空格】 [root@server0 ~]# expr 10 % 3 【求10與3的余數】 1 2.$[] [root@server0 ~]# echo $[5*3] 【求5乘3】 15 [root@server0 ~]# x=5 【分別為x和y賦值並求乘積】 [root@server0 ~]# y=10 [root@server0 ~]# echo $[x*y] 50 3.let 【不顯示結果】 [root@server0 ~]# x=6 [root@server0 ~]# y=6 [root@server0 ~]# let i=x+y [root@server0 ~]# echo $i 12 簡寫運算: [root@server0 ~]# x=5 [root@server0 ~]# let x++ 【為x值加1】 [root@server0 ~]# echo $x 6 [root@server0 ~]# x=5 [root@server0 ~]# let x+=5 【為x值加5】 [root@server0 ~]# echo $x 10 let x*=5 【為x值晨乘5】 let x/=5 【為x值除以5】 let x%=5 【為x值取余】 4.bc 【計算器】 5+5 10 5. 取小樹點後x位 scale=x 取小數點後兩位 [root@server0 ~]# echo "scale=2;2/10" | bc .20 6. 比較:test 或 [ 參數 = 參數 ] 【括號內一定要有空格】 [root@server0 ~]# [ a = a ] [root@server0 ~]# echo $? 【判斷是否執行】 0 7.判斷空值 -z [root@server0 ~]# [ -z $p ] [root@server0 ~]# echo $? 0 [root@server0 ~]# p=5 [root@server0 ~]# [ -z $p ] [root@server0 ~]# echo $? 1 1.一行打多條命令 a && b 僅當a成功時,才執行b a || b 僅當a失敗時,才執行b a ; b 執行a,執行b 示例: 創建用戶登陸超過兩個郵件報警 #!/bin/bash num=`who | wc -l` [ $num -gt 2 ] && mail -s error root < /root/mail 編輯郵件內容vim /root/mail 2.判斷文件/目錄的狀態 -e 判斷對象是否存在,存在即為真 -d 判斷對象是否為目錄,存在即為真 -f 判斷對象是否為文件,存在即為真 -r 讀 -w 寫 -o 執行本 註:root對所有對象皆為真『腳本除外』 [Moring晨光]#chmod -x who.sh [Moring晨光]#ll who.sh -rw-r--r--. 1 root root 81 4月 24 11:52 who.sh [Moring晨光]#[ -o who.sh ] [Moring晨光]#echo $? 1 [判斷] && 命令 存在即執行命令 [判斷] || 命令 不存在即執行命令 ! 取反 單分支if 只能判斷對 雙分支if 判斷對和錯 多分支if 多次判斷
初識shell【運算符與判斷】