Shell编程实例
整理了几道Shell编程实例,针对新手! 1. 在/home目录中创建一百个目录,目录名称依次为a1……a100. 实例1 for ((i=1;i<=100;i++)) do mkdir "/home/a"$i done 实例2,还可以写的高级一点 for ((i=1;i<=100;i++)) do if [ ! -e "/home/a"$i ] then mkdir "/home/a"$i else echo "/home/a"$i"exist!" fi done 2. 编写一个脚本,自动将用户主目录下所有小于5KB的文件打包成XX.tar.gz.(提示:用ls,grep,find等命令,文件一般指普通文件) find实现 find ./ -type f -size +5120c |xargs tar -czvf xx.tar.gz ls,grep实现 ls -l | grep ^- | awk '{if($5<5120)print $9}' | xargs tar -czf tar.gz 3.写一个程序,可以将/et/passwd的第一列取出,而且每一列都以一行字符串“the 1 account is “root””来显示 #!/bin/bash i=1 while read line do name=`echo $line|cut -d ":" -f1` echo "the "$i" account is "$name i=$((i+1)) done < /etc/passwd 只取第一行的话一条命令就够了 cat /etc/passwd | cut -d ":" -f1 4. 编写一个程序,他的作用是先查看一下/root/test/logical这个名称是否存在,若不存在,则创建一个文件。使用touch来创建,创建完成后离开;如果存在的话,判断该名称是否为文件,若为文件则将之删除后新建一个目录。文件名为loglical,之后离开;如果存在的话,而且该名称为目录,则删除此目录。 #!/bin/bash if [ -e "/root/work/logical" ] then if [ -f "/root/work/logical" ] then rm "/root/work/logical" mkdir "/root/work/logical" elif [ -d "/root/work/logical" ] then rm -rf "/root/work/logical" fi else touch "/root/work/logical" fi 5.编写一个shell脚本,从键盘读入10个数,显示最大值和最小值。 难点整数的比较和字符串比较符的区分 min=0 max=0; var=0 for((i=0;i<10;i++)) do read var if [ $i == 0 ] then min=$var; max=$var; else if [ $min -gt $var ] then min=$var; fi if [ $max -lt $var ] then max=$var; fi fi; done echo $max echo $min 6.编写一个脚本,打印任何数的乘法表。如输入3则打印 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 难点:echo 不换行输出 var=0 read var; for((i=1;i<=var;i++)) do for((j=1;j<=i;j++)) do echo -ne "$i*$j="$((i*j))" " done echo -ne "\n" done 7.编写一个脚本,输入自己的生日时间(YYYYMMDD),计算还有多少天多少个小时是自己的生日。 时间的操作一般通过时间戳来实现
posted on 2015-11-23 11:49 zyz913614263 阅读(1496) 评论(0) 编辑 收藏 举报