1、写一个脚本
(1) 能接受四个参数:start, stop, restart, status
start: 输出“starting 脚本名 finished.”
(2) 其它任意参数,均报错退出;
1 #!/bin/bash 2 #author:BaoZhang 3 # 4 flag=0 5 if [ $# -eq 1 ];then 6 case $1 in 7 start) 8 echo "start $0 finished" 9 filg=1 10 ;; 11 stop) 12 echo "stop $0 finished" 13 flag=0 14 ;; 15 restart) 16 echo "restart $0 finished" 17 flag=1 18 ;; 19 status) 20 if [ $flag -eq 1 ];then 21 echo "$0 is running..." 22 else 23 echo "$0 stopped...." 24 fi 25 ;; 26 *) 27 echo "invalid argument,usage:$0 {start|stop|status|restart}" 28 ;; 29 esac 30 else 31 echo "usage : $0 {start|stop|status|restart}" 32 fi
2、写一个脚本,判断给定的用户是否登录了当前系统;
(1) 如果登录了,则显示用户登录,脚本终止;
(2) 每3秒钟,查看一次用户是否登录;
1 #!/bin/bash 2 #author:BaoZhang 3 # 4 read -p "please input username:" username 5 until who | grep "\b$username\b" &>/dev/null ;do 6 echo "$username not login " 7 sleep 3 8 done 9 echo "$username login!!" 10 exit 0 11
3、写一个脚本,显示用户选定要查看的信息;
cpu) display cpu info
mem) display memory info
disk) display disk info
quit) quit
非此四项选择,则提示错误,并要求用户重新选择,只到其给出正确的选择为止;
1 #!/bin/bash 2 #author:BaoZhang 3 # 4 echo "please input what you want to do:" 5 echo "cpu: display cpu info" 6 echo "mem: display mem info" 7 echo "disk: diplay disk info" 8 echo "quit: quit this script" 9 read input 10 until [ $input == "cpu" -o $input == "mem" -o $input == "disk" -o $input == "quit" ] ; do 11 read -p "error input,please input what you want to do:" input 12 done 13 case $input in 14 cpu) 15 lscpu 16 ;; 17 mem) 18 cat /proc/meminfo 19 ;; 20 disk) 21 fdisk -l 22 ;; 23 quit) 24 echo "quit..." 25 exit 0 26 ;; 27 esac 28
4、写一个脚本
(1) 用函数实现返回一个用户的UID和SHELL;用户名通过参数传递而来;
(2) 提示用户输入一个用户名或输入“quit”退出;
当输入的是用户名,则调用函数显示用户信息;
当用户输入quit,则退出脚本;进一步地:显示键入的用户相关信息后,再次提醒输出用户名或quit:
1 #!/bin/bash 2 #author:BaoZhang 3 # 4 function findUser 5 { 6 if id $1 &>/dev/null;then 7 userid=$(grep "^\b$1\b" /etc/passwd | cut -d":" -f3) 8 usershell=$(grep "^\b$1\b" /etc/passwd | cut -d":" -f7) 9 echo "user $1: uid=$userid, shell=$usershell " 10 else 11 echo "the user not exist" 12 fi 13 } 14 15 echo "input a user name for the user info,input quit for quit:" 16 read input 17 until [ $input == "quit" ];do 18 findUser $input 19 echo "please input again or quit" 20 read input 21 done 22
5、写一个脚本,完成如下功能(使用函数)
(1) 提示用户输入一个可执行命令的名字;获取此命令依赖的所有库文件;
(2) 复制命令文件至/mnt/sysroot目录下的对应的rootfs的路径上,例如,如果复制的文件原路径是/usr/bin/useradd,则复制到/mnt/sysroot/usr/bin/目录中;
(3) 复制此命令依赖的各库文件至/mnt/sysroot目录下的对应的rootfs的路径上;规则同上面命令相关的要求;
1 #!/bin/bash 2 #author:BaoZhang 3 # 4 command_target_dir=/mnt/sysroot/ 5 lib_target_dir=/mnt/sysroot/rootfs/ 6 function copy 7 { 8 if $1 &>/dev/null;then 9 command=$(which $1 | tail -1) 10 cp $command $command_target_dir 11 echo "$1 copy finished" 12 for i in { $(ldd $command | cut -d" " -f3) };do 13 cp $i $lib_target_dir &>/dev/null 14 done 15 echo "$1 lib file copy finished" 16 else 17 echo "error input .." 18 fi 19 } 20 21 echo "input a command or quit for quit:" 22 read input 23 until [ $input == "quit" ];do 24 if [ cd $command_target_dir &>/dev/null -a cd $lib_target_dir &>/dev/null ] ;then 25 copy $input 26 else 27 mkdir -p $command_target_dir &>/dev/null 28 mkdir -p $lib_target_dir &>/dev/null 29 copy $input 30 fi 31 echo "you can input a command again or quit for quit:" 32 read input 33 done
原创文章,作者:zhangbao,如若转载,请注明出处:http://www.178linux.com/61154