0
点赞
收藏
分享

微信扫一扫

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


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


 

举报

相关推荐

0 条评论