案例
案例一
示例代码
[root@bogon ~]# vim xunhuan.sh
#! /bin/bash
#编写一个shell脚本,它把第二个位置参数及以后的各个参数指定的文件复制到的第一个参数指定的目录中
#分析: (1)至少要有两个位置参数
#(2)第一个位置参数为目录,后面都为文件
#(3)使用循环的方式将文件复制到指定目录
if [ $# -ge 2 ]
then
#如果不存在则创建目录
[ -d $1 ] || mkdir -p $1
#后面都为文件
for ((i=2;i<=$#;i++))
do
if [ ! -f ${!i} ]
then
echo "参数不合规定!"
exit 3
else
\cp ${!i} $1
fi
done
else
echo "参数不合规定!"
exit 4
fi
结果:
[root@bogon ~]# vim xunhuan.sh
[root@bogon ~]# ./xunhuan.sh
参数不合规定!
[root@bogon ~]# ./xunhuan.sh /root/chen /etc/passwd
[root@bogon ~]# ll /root/chen
总用量 4
-rw-r--r--. 1 root root 1452 3月 5 13:26 passwd
案例二
示例代码
#! /bin/bash
#编写脚本,利用for循环将当前目录下的.c文件移动到指定目录下,并按照文件大小排序移动后的目录
#分析: (1)首先手动键入指定目录
#(2)移动的文件按照从大到下的循序排列
read -p "请输入指定目录:" var
ls -d $var &>/dev/null
var1=`echo $?` #用于判断$var是否存在
var2=`ls -l | tr -s " " |cut -d" " -f9 | egrep *.c$` #取出当前目录下的以.c结尾的所有文件名
if [ $var1 -eq 0 ]
then
for i in $var2
do
mv $i $var && cd $var && ls -lS
done
echo $i
else
mkdir -p $var
echo "创建$var目录"
for i in $var2
do
mv $i $var && cd $var && ls -lS
done
fi
案例三
代码示例
#! /bin/bash
#编写一个shell脚本,打印任何数的乘法表
#例如:当你输入3时,显示如下
#3*1 = 3
#3*2 = 6
#3*3 = 9
#3*4 = 12
#3*5 = 15
#...
#3*9 = 27
read -p "请输入一个数字:" num
for ((i=1;i<=9;i++))
do
sum=$(($num*$i))
echo "$num"*"$i" = "$sum"
echo
done
法二
#! /bin/bash
#编写一个shell脚本,打印任何数的乘法表
#例如:当你输入3时,显示如下
#3*1 = 3
#3*2 = 6
#3*3 = 9
#3*4 = 12
#3*5 = 15
#...
#3*9 = 27
while true
do
read -p "请输入一个数:" num
if let num++
then
for ((i=1;i<=9;i++))
do
sum=$(($[$num-1]*$i))
echo "$[$num-1]"*"$i" = "$sum"
done
break
else
echo "请输入整数"
fi
done