1、从键盘输入文件夹名
(1)这个文件是否存在,若不存在则给予一一个“Filename does not exist"的讯息,并中断程序;
(2)若这个文件存在,则判断他是个文件或目录,结果输出“Filename is regularfile”或“Filename is directory”,
(3)判断一下,执行者的身份对这个文件或目录所拥有的权限,并输出权限数据!
#!/bin/bash
read -p "请输入文件名夹:" Filename
re=$(`test -r $Filename` && echo "readable")
wr=$(`test -w $Filename` && echo "writeable")
ex=$(`test -x $Filename` && echo "executable")
if [ ! -e $Filename ]
then
echo "$Filename does not exist"
exit
elif [ -f $Filename ]
then
echo "$Filename is regular file"
echo "`whoami` is owned $re,$wr,$ex"
ls -l $Filename
else
echo "$Filename is directory"
echo "`whoami` is owned $re,$wr,$ex"
ls -dl $Filename
fi
运行结果
2、编写脚本user_ info查找用户是否存在,如何存在则显示用户的主目录信息。如何用户不存在,则判断在/home下是否存在以该用户名命名的目录命名的目录。.
user_ info tom
要求能够处理用户的错误调用,并给出提示。
#!/bin/bash
if [ $# -eq 0 ]
then
echo "请传入要判断的用户"
exit 5
elif id $1 &> /dev/null
then
ls -l /home/$1
else
echo "用户不存在"
ls -l /home/$1 &> /dev/null && echo "但是用户拥有家目录"
fi
运行结果
6、编写脚本user_add,在创建新用户前,判断用户名是否存在,并相应处理。(将第2题的脚本改为函数,在主程序中,创建用户之前,调用该函数判断用户是否存在)
user_add tom
通过函数的返回值代表不同的情况。
#!/bin/bash
user_info() {
if [ $# -eq 0 ]
then
echo "请传入要判断的用户"
exit 5
elif id $1 &> /dev/null
then
ls -l /home/$1
else
echo "用户不存在即将创建用户....."
ls -l /home/$1 &> /dev/null && echo "该用户已拥有家目录"
fi
}
user_info $1
if grep $1 /etc/passwd &> /dev/null
then
echo "用户名已存在"
exit 6
else
echo "正在创建用户$1"
useradd $1
echo "$1用户创建完成"
fi
运行结果