1、shell脚本数据输入、条件判断、大小比较
#!/bin/bash #将第一个命令行参数传递给变量1,第二个命令行参数传递给变量b a=$1 b=$2 #判断a或者b变量是否为空,只要有一个为空就打印提示语句并退出 if [ -z $a ] || [ -z $b ] then echo "please enter 2 numbers" exit 1 fi #判断a和b的大小,并根据判断打印结果 if [ $a -eq $b ] then echo "number a = number b" else if [ $a -gt $b ] then echo "number a > number b" elif [ $a -lt $b ] then echo "number a < number b" fi fi
运行结果如下:
eastmoon@eastmoon-virtual-machine:~/work/guoqian/1/1.1$sh test1.sh please enter 2 numbers eastmoon@eastmoon-virtual-machine:~/work/guoqian/1/1.1$sh test1.sh 3 3 number a = number b eastmoon@eastmoon-virtual-machine:~/work/guoqian/1/1.1$sh test1.sh 3 5 number a < number b eastmoon@eastmoon-virtual-machine:~/work/guoqian/1/1.1$sh test1.sh 7 5 number a > number b
2、shell脚本循环控制、文件属性判断
#!/bin/bash #变量counter用于统计文件的数目 counter=0 #变量files遍历一遍当前文件夹 for files in * do #判断的files是否为文件,如果是,counter的值就加1并赋值给自己 if [ -f "$files" ] then counter=`expr $counter + 1` fi done #输出结果 echo "There are $counter files in`pwd`"
运行结果:
eastmoon@eastmoon-virtual-machine:~/work/guoqian/1/1.1$sh test2.sh There are 3 files in/home/eastmoon/work/guoqian/1/1.1
3、shell脚本循环控制语句
#!/bin/bash echo -n "Please enter number:" #读入输入的值放到变量n中 read n sd=0 rev="" on=$n echo "You put number is $n" while [ $n -gt 0 ] do sd=$(($n%10)) #求余 n=$(($n/10)) #去掉最后一位 rev="$rev$sd" #将当前的最后一位放在字符串之后 done echo "$on in a reverse order$rev"
运行结果如下:
eastmoon@eastmoon-virtual-machine:~/work/guoqian/1/1.1$sh test3.sh Please enter number:98345 You put number is 98345 98345 in a reverse order 54389
4、shell脚本移动一个文件,若其存在,则监视该文件,直到文件被删除了再移动。
#!/bin/bash #判断命令行是否带有两个文件名的参数 if [ "$1" = "" ] || ["$2" = "" ] then echo "Please enter file name" exit 1 fi #判断目标文件是否存在 if [ -e $2 ] then echo "The file already exists" until [ ! -f $2 ] #监视该文件是否被删除 do sleep 1 done echo "The file have been deleted" fi #执行源文件移动为目标文件的命令 if [ ! `mv $1 $2` ] then echo "mv sucessful" else echo "mv error" fi
运行结果如下:
eastmoon@eastmoon-virtual-machine:~/work/guoqian/1/1.1$sh test4.sh a b The file already exists The file have been deleted mv sucessful eastmoon@eastmoon-virtual-machine:~/work/guoqian/1/1.1$sh test4.sh b c mv sucessful