read -p "input a file:" filename
if [ -b $filename -o -c $filename ] then cp $filename /dev/fi
2.编写一个脚本。进行简单的减法运算。要求提示输入变量 #!/bin/bash read -p "input a number:" num1 read -p "input another number:" num2 let "num3=num1-num2" echo $num3 3.把某个文件夹下的文件扩展名改为bat,再以时间为文件名称压缩打包存放到某个文件夹。 #!/bin/bash for file in $(ls $1) do new_file=${file%.*}.bat mv ./$1/$file ./$1/$new_file tmp=$(date +%y) tar cvf ./$tmp.tar ./$1 done 4.推断一个数是不是完数。
打印出1-1000之间的完数。
完数就是约数的和等于自身2倍的数。(6,28,496) #!/bin/bash sub() { i=1; sum=0; while [ $i -le $num ] do let "m=num%i" if [ $m -eq 0 ] then let "sum=sum+i" fi let "i=i+1" done let "a=2*num" if [ $a -eq $sum ] then echo $num fi } num=1 while [ $num -le 1000 ] do sub let "num = num+1" done 5.在某个目录下查找含有指定字符串的文件
#!/bin/bash for file in $(ls $2) do bname=$(grep -l $1 $2/$file) basename $bname done 6.加入一个新组为class1,然后加入属于这个组的30个用户,username的形式为stdxx,当中xx从01到30。 #!/bin/bash groupadd class1 for i in {9901..9930} do xx=$(echo $i | sed 's/99//'); useradd -g class1 std$xx -p "" done 7.设计一个Shell程序。在/userdata文件夹下建立50个文件夹。即user1~user50,并设置每一个文件夹的权限,其\中其它用户的权限为:读。文件全部者的权限为:读、写、运行;文件全部者所在组的权限为:读、运行。 #!/bin/bash for ((i=1;i<=50;i++)) do mkdir -p /usrdata/user$i cd /usrdata chmod 754 user$i done 8. 写一个脚本,利用循环计算10的阶乘 #!/bin/sh factorial=1 for a in `seq 1 10` do factorial=` expr $factorial \* $a ` done echo "10! = $factorial" 9.删除当前文件夹下大小为0的文件 #/bin/bash for filename in `ls` do if test -d $filename then b=0 else a=$(ls -l $filename | awk '{ print $5 }') if test $a -eq 0 then rm $filename fi fi done
转载于:https://www.cnblogs.com/bhlsheji/p/5241773.html
相关资源:Linux shell 编程实战