和菜鸟一起深入学习国嵌实验之脚本编程

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


 

posted on 2013-01-27 16:26  吴一达  阅读(145)  评论(0编辑  收藏  举报

导航