作业
1.请输⼊⽂件的名字,判断⽂件是否是普通⽂件,判断文件是否为脚本文件,如果为脚本文件,判断脚本文件是否具有可执行的权限,如果没有可执行的权限则添加可执行的权限。
#!/bin/bash
read -p "请输入文件名" filename
a=`find ~ -name $filename|head -n 1`
if [ ${#a} -ne 0 ] ; then
echo "$filename文件存在"
echo "$filename文件路径为$a"
if [ -f $a ] ;then
echo "$filename是普通文件"
fileType=`file $a | cut -d ' ' -f 3`
if [ $fileType == "shell" ] ; then
echo "$filename文件是一个shell脚本文件"
if [ -x $a ] ; then
echo "$filename文件具有可执行的权限"
else
echo "$filename文件不具有可执行的权限"
chmod a+x $a
echo "已为$filename文件添加可执行权限"
fi
else
echo "$filename文件不是一个shell脚本文件"
fi
else
echo "$filename不是普通文件"
fi
else
echo "$filename文件不存在"
fi
2.通过终端输入两个字符串,比较两个字符串是否相等
#!/bin/bash
if ((`expr match $1 $2`))
then
echo "$1和$2相等"
else
echo "$1和$2不相等"
fi
3.打印正三角九九乘法表,使用break
#!/bin/bash
for((i=1;i<=9;i++)); do
for((j=1;j<=9;j++)); do
if ((j>i)) ; then
break
fi
t=$((i*j))
echo -ne "${i}*${j}=$t\t"
done
echo ''
done
4.输入用户的名字,判断系统中是否有这个用户,若用户存在返回用户在/etc/passwd中的行号并返回这个用户的uid
#!/bin/bash
read -p "请输入用户名:" name
arr=()
len=`sed -n '$=' /etc/passwd`
for ((i=0;i<=$len;i++)); do
arr[i]=`head -$i /etc/passwd|tail -1|cut -d ":" -f 1`
if [ "$name" = "${arr[i]}" ] ; then
uid=`head -$i /etc/passwd|tail -1|cut -d ":" -f 3`
echo "存在$name用户,在$i行"
echo "uid:$uid"
exit
fi
done
echo "不存在该用户"