Shell脚本综合实例

一、执行脚本命令汇总
  1. bash text.sh
  2. chmod a+x text.sh   ./text.sh
  3. 将当前文件所在的路径加入到环境变量中去,即修改环境变量,则可只输入文件名即能执行文件
    export PATH=$PATH:/(软件的路径名)
二、shell传参
  1. 脚本命令行输入传参——在执行命令时后加位置参数(利用$0,$1等),示例如下图:
    在这里插入图片描述
    在这里插入图片描述
  2. 用read命令传参(在执行命令后由键盘输入参数
    在这里插入图片描述
    在这里插入图片描述
    注意:如果脚本中有输入语句read a b;执行时输入4,5,6,则a=4,5,6 而b为空 (注意以空格分隔)
三、常用技巧

1.可以将路径或文件名设置成变量,使代码更简洁、易维护
2.文件名格式为“文件名_bak_年月日_时分秒”可以如下表示:在这里插入图片描述

四、综合示例
  1. 编写脚本程序判断当前用户是否为root管理员,如果是,则执行tar对/etc/目录执行备份。
    在这里插入图片描述
    注意:&>/dev/null指无论正确的还是错误的输出都重定向到空设备,就是不要输出信息。/dev/null表示一个空设备。
  2. 编写脚本程序程序,将当前目录下所有的.txt文件更名为.doc文件
    在这里插入图片描述
    注意:
    (1)在Linux系统中不支持mv *.txt *.doc这样的更名命令形式,如果需要将文件成批地更名最好编写一个shell脚本文件。
    (2)在for语句的参数列表中使用了“*”通配符。
    (3)在程序中用到basename命令,该命令从随后的文件名剥去指定的后缀。
    (4)dirname 获取文件的目录名。
  3. 使用user.txt文件中的人员名单,在计算机中自动创建对应的账户并配置初始密码为“123456”。
#!/bin/bash
for  i  in  `cat user.txt`
do 
	useradd  $i
	echo “123456”|passwd  --stdin $i
done
  1. 每隔5分钟检查指定的用户是否登录系统。
    在这里插入图片描述
  2. 根据时间备份/var/log 日志目录,仅备份周三、周五的数据
    在这里插入图片描述
  3. 编写脚本,检查密码,如果用户三次输入密码均错误,则退出脚本
#!/bin/bash
num=3
PASSWORD=123456 #initial password
sum=0
while true
do
	read -p "please input your password:" pass
	sum=$((sum+1))
	if [ $pass == $PASSWORD ];then	 #注意then必须接在if语句后面否则报错
		echo "you are right!"
		exit
	elif[ $sum -lt 3 ];then
		continue
	else
		exit
	fi
done
发布了136 篇原创文章 · 获赞 54 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/Flora_SM/article/details/105229406