[root@yong-01 ~]# for i in `seq 1 5`;do echo $i;done 1 2 3 4 5 [root@yong-01 ~]# for i in `seq 1 5` > do > echo $i > done 1 2 3 4 5
[root@yong-01 shell]# vim if1.sh #!/bin/bash a=5 if [ $a -gt 3 ] then echo OK fi [root@yong-01 shell]# sh if1.sh OK
[root@yong-01 shell]# cp if1.sh if2.sh [root@yong-01 shell]# vim if2.sh #! /bin/bash a=1 if [ $a -gt 3 ] then echo OK else echo nook fi [root@yong-01 shell]# sh -x if2.sh + a=1 + '[' 1 -gt 3 ']' + echo NOOK NOOK
[root@yong-01 shell]# vim if3.sh [root@yong-01 shell]# cat if3.sh #! /bin/bash a=6 if [ $a -lt 5 ] then echo "a<5" elif [ $a -gt 5 ] && [ $a -lt 9 ] then echo "5<a<9" else echo "a>9" fi [root@yong-01 shell]# sh -x if3.sh + a=6 + '[' 6 -lt 5 ']' + '[' 6 -gt 5 ']' + '[' 6 -lt 9 ']' + echo '5<a<9' 5<a<9
[root@yong-01 shell]# vim file1.sh #! /bin/bash f="/tmp/yongge" if [ -f $f ] then echo $f exist else touch $f fi [root@yong-01 shell]# sh -x file1.sh 第一次執行,會建立該文件 + f=/tmp/yongge + '[' -f /tmp/yongge ']' + touch /tmp/yongge [root@yong-01 shell]# sh -x file1.sh 第二次執行,會提示該文件已存在 + f=/tmp/yongge + '[' -f /tmp/yongge ']' + echo /tmp/yongge exist /tmp/yongge exist
[root@yong-01 shell]# vim file2.sh #! /bin/bash f="/tmp/yongge" if [ -d $f ] then echo $f exist else mkdir $f fi [root@yong-01 shell]# sh -x file2.sh + f=/tmp/yongge + '[' -d /tmp/yongge ']' + mkdir /tmp/yongge
[root@yong-01 shell]# vim file3.sh [root@yong-01 shell]# sh -x file3.sh + f=/tmp/yongge + '[' -e /tmp/yongge ']' + echo /tmp/yongge exist /tmp/yongge exist
[root@yong-01 shell]# vim file4.sh #! /bin/bash f="/tmp/yongge" if [ -r $f ] then echo $f readable fi [root@yong-01 shell]# sh file4.sh /tmp/yongge readable
[root@yong-01 shell]# vim file4.sh #! /bin/bash f="/tmp/yongge" if [ -w $f ] then echo $f writeadable fi [root@yong-01 shell]# sh file4.sh /tmp/yongge writeadable
[root@yong-01 shell]# vim file4.sh #! /bin/bash f="/tmp/yongge" if [ -x $f ] then echo $f exeable fi [root@yong-01 shell]# sh file4.sh /tmp/yongge exeable
f="/tmp/yongge" [ -f $f ] && rm -f $f //前一條命令執行成功纔會繼續執行以後的命令 等同於下面的表達方式 if [ -f $f ] then rm -rf $f fi
f="/tmp/yongge" [ -f $f ] || touch $f //前面命令不成功時,執行後面的命令 if [ ! -f $f ] // 「!」表示了若是這條命令不成功,就往下執行 then touch $f fi
[root@yong-01 shell]# vim file1.sh #! /bin/bash n=`wc -l /tmp/lala` if [ -z "$n" ] then echo error exit elif [ $n -gt 100 ] then echo abcd fi [root@yong-01 shell]# sh -x file1.sh ++ wc -l /tmp/lala wc: /tmp/lala: 沒有那個文件或目錄 + n= + '[' -z '' ']' + echo error error + exit
[root@yong-01 shell]# vim file1.sh #! /bin/bash if [ ! -f /tmp/lala ] then echo "/tmp/lala not exist." exit fi n=`wc -l /tmp/lala` if [ -z "$n" ] elif [ $n -gt 100 ] then echo abcd fi [root@yong-01 shell]# sh file1.sh ] /tmp/lala not exist.
[root@yong-01 shell]# if [ -n 01.sh ]; then echo ok; fi ok [root@yong-01 shell]# echo $b [root@yong-01 shell]# if [ -n "$b" ]; then echo $b; else echo "b is null"; fi b is null
[root@yong-01 shell]# grep -w 'zabbix' /etc/passwd zabbix:x:997:994:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin [root@yong-01 shell]# if grep -wq 'zabbix' /etc/passwd; then echo "zabbix exist"; fi zabbix exist
if [ ! -e file ]; then 表示文件不存在時會怎麼樣shell
if (($a<1)); then …等同於 if [ $a -lt 1 ]; then…vim
[ ] 中不能使用<,>,==,!=,>=,<=這樣的符號 一個等於號= 是賦值bash
#!/bin/bash #判斷是否輸入有數值,空直接結束整個文本 read -p "Please input a number: " n #read 讓用戶輸出一些字符串;賦值給最後一個變量;這裏的賦值是「n」 if [ -z "$n" ] //變量n 爲空 then echo "Please input a number." exit 1 // 知識點 1 fi #n1將輸入的數值清空數字,檢查變量是否爲空,若是不爲空,就證實輸入有其餘的字符,告知用戶,請輸入一個數字 n1=`echo $n|sed 's/[0-9]//g'` //肯定,n變量是否爲數字 if [ -n "$n1" ] then echo "Please input a number." exit 1 fi if [ $n -lt 60 ] && [ $n -ge 0 ] then tag=1 elif [ $n -ge 60 ] && [ $n -lt 80 ] then tag=2 elif [ $n -ge 80 ] && [ $n -lt 90 ] then tag=3 elif [ $n -ge 90 ] && [ $n -le 100 ] then tag=4 else tag=0 fi case $tag in 1) echo "not ok" ;; 2) echo "ok" ;; 3) echo "ook" ;; 4) echo "oook" ;; *) echo "The input value exceeds the calculation range.The number range is 0-100." ;; esac