练习1:输入一个文件名,
判断是否在当前目录下存在, -e
如果是一个目录,则直接输出是目录 -d
如果存在则判断是否是一个普通文件,如果是普通文件则判断是否具备 -f
可读可写可执行权限, -w -r -x如果具备权限,写入hello, echo hello >> $file
不具备权限,则添加读写执行权限,chmod 777 $file 写入hello
如果是一个链接文件则输出文件的详细信息 ls -lh $file
#!/bin/bash
read -p "please enter file:" file
if [ -e ./$file ] #判断文件是否存在
then
echo file exist
if [ -d $file ]
then
echo -d file
elif [ -L $file ]
then
c=`ls -lh $file`
echo $c
elif [ -f $file ] #判断是不是普通文件
then
echo -f file
if [ -r $file ] #判断是否具有读权限
then
echo -r file
fi
if [ -w $file ] #判断是否具有写权限
then
echo -w file
fi
if [ -x $file ] #判断是否具有执行权限
then
echo -x file
fi
if [ -w $file -a -r $file -a -x $file ]
then
echo hello >> $file
else
chmod 777 $file
echo hello >> $file
fi
fi
else
echo file not exist
fi
练习2:输入一个数,判断是否是回文数
回文数:12321
#!/bin/bash
read -p "please enter num:" num
a=$num
while [ $num -ne 0 ]
do
((sum=sum*10+num%10))
((num/=10))
done
if [ $a -eq $sum ]
then
echo yes
else
echo no
fi
练习3:输入n,计算n!
#!/bin/bash
read -p "please enter num:" n
a=$n
while [ $n -ne 1 ]
do
((a*=n-1))
((n--))
done
echo n!=$a
练习4:图形打印
*
***
*****
*******
#!/bin/bash
read -p "请输入杨辉三角的行数:" a
for ((i=0;i<a;i++))
do
for((k=0;k<a-i;k++))
do
echo -n " "
done
for((j=0;j<=2*i;j++))
do
echo -n "*"
done
echo " "
done
练习5:使用select in循环数组,arr=(Windows Linux Unix Mac),实现页面的交互
如果是Windows,则输出Windows以打开
如果是Linux,则输出Linux以打开
如果是Unix,则输出Unix以打开
如果是Mac,则输出Mac以打开
其他,提示错误
#!/bin/bash
arr=(Windows Linux Unix Mac)
select a in ${arr[*]}
do
case $a in
Windows)
echo window open
;;
Linux)
echo Linux open
;;
Unix)
echo Unix open
;;
Mac)
echo Mac open
;;
*)
echo error
;;
esac
done
练习6:输入一个数,判断是否是素数
素数:被1和本身整除
#!/bin/bash
read -p "please enter num:" num
a=$num
count=0
for((i=2;i<num;i++))
do
c=$(($num%i))
if [ $c -eq 0 ]
then
((count++))
fi
done
if [ $count -eq 0 ]
then
echo yes
else
echo no
fi