shell脚本大全
一、根据执行命令时输入的文件地址,打印文件下的所有目录
#首先创建一个sh文件: touch sh02.sh #授予执行权限: chmod +x sh02.sh 编辑sh02文件: #vim sh02.sh
1、使用ls打印目录
#根据用户输入的目录遍历此目录下的所有文件 ls -l $1 #执行1 ./sh02.sh / #执行2 ./sh02.sh /etc
2、tree
#根据用户输入的目录遍历此目录下的所有文件 tree $1 #执行1 ./sh02.sh / #执行2 ./sh02.sh /etc
二、备份文件
tar -czvpf log.tar.gz $1 #执行 ./sh02.sh /yhj/
三、定时执行
1、实例
echo "11111" #编写计划任务,执行备份脚本 crontab -e #每分钟执行,执行成功保存到log.log文件中,失败保存到error.txt * * * * * sh /yhj/sh/sh02.sh >>/yhj/sh/log.log 2>>/yhj/sh/error.txt #查看计划任务 crontab -l
四、内存和空间检测脚本
#提取根分区剩余空间 disk_size=$(df / | awk "///{print $4}") #提取内存剩余空间 mem_size=$(free | awk "/Mem/{print $4}") if [ $disk_size -gt 1200 ] then echo "空间正常:$disk_size" else echo "空间警告:$disk_size" fi if [ $mem_size -gt 12000000000000000 ] then echo "内存正常:$mem_size" else echo "内存警告:$mem_size" fi
五、猜数字游戏
# RANDOM 为系统自带的系统变量,可以生成 0‐32767范围内的随机数 # 使用取余算法将随机数变为 1‐100 的随机数 num=$[RANDOM%100+1] echo "系统生成的随机数为:$num" # 使用 read 提示用户猜数字 # 使用 if 判断用户猜数字的大小关系:‐eq(等于),‐ne(不等于),‐gt(大于),‐ge(大于等于),‐lt(小于),‐le(小于等于) while : do read -p "系统生成了1-100的随机数,请输入您猜的数字:" cai if [ $cai -eq $num ] then echo "您太厉害了,竟然猜对了" exit elif [ $cai -gt $num ] then echo "猜大了小点行不行" else echo "猜小了慷慨点好不好" fi done
六、用户身份判断
if [ $USER == "root" ] then echo "是超级管理员root用户" else echo "不是超级管理员,用户是$USER" fi
七、添加用户
#如果用户不输入密码,则统一使用默认的 123456 作为默认密码。 read -p "请输入用户名: " user #使用‐z 可以判断一个变量是否为空,如果为空,提示用户必须输入账户名,并退出脚本退出码为 2 #没有输入用户名脚本退出后,使用$?查看的返回码为 2 if [ -z $user ];then echo "您不需输入账户名" exit 2 fi #使用 stty ‐echo 关闭 shell 的回显功能 #使用 stty echo 打开 shell 的回显功能 stty -echo read -p "请输入密码: " pass stty echo pass=${pass:123456} useradd "$user" echo "$pass" | passwd ‐‐stdin "$user"
八、输入三个数并进行升序排序
read -p "数字1:" num1 read -p "数字2:" num2 read -p "数字3:" num3 # num1 存最小的值,num2 存中间值,num3 存最大值 z=0 # 如果 num1 大于 num2,就把 num1 和 num2 的值对调,确保 num1 变量中存的是最小值 if [ $num1 -gt $num2 ];then z=$num1 num1=$num2 num2=$z fi # 如果 num1 大于 num3,就把 num1 和 num3 对调,确保 num1 变量中存的是最小值 if [ $num1 -gt $num3 ];then z=$num1 num1=$num3 num3=$z fi # 如果 num2 大于 num3,就把 num2 和 num3 对标,确保 num2 变量中存的是小一点的值 if [ $num2 -gt $num3 ];then z=$num2 num2=$num3 num3=$z fi echo "排序后数据(从小到大)为:$num1,$num2,$num3"
九、石头剪刀布
game=(石头 剪刀 布) num=$[RANDOM%3] computer=${game[$num]} # 出拳的可能性保存在一个数组中,game[0],game[1],game[2]分别是 3 中不同的可能 echo "请根据提示出手势" echo "1:石头" echo "2:剪刀" echo "3:布" read -p "请选择 1‐3:" person case $person in 1) if [ $num -eq 0 ] then echo "平局加油" elif [ $num -eq 1 ] then echo "你赢啦,真棒" else echo "计算机赢,好遗憾" fi;; 2) if [ $num -eq 0 ] then echo "计算机赢,好遗憾" elif [ $num -eq 1 ] then echo "平局加油" else echo "你赢,真棒" fi;; 3) if [ $num -eq 0 ] then echo "你赢,真棒" elif [ $num -eq 1 ] then echo "计算机赢,好遗憾" else echo "平局加油" fi;; *) echo "必须输入 1‐3 的数字" esac
十、九九乘法表
# 9*9 乘法表 for i in `seq 9` do for j in `seq $i` do echo -n "$j*$i=$[i*j] " done echo done
特斯拉宣布已生产100万块4680电池北京时间2月19日凌晨,特斯拉宣布其已在位于加利福尼亚州的试点工厂生产了100万块4680电池。据中证报此前报道,搭载4680电池的新款ModelY即将交付,预计年底该型号电池产能
圈铁双单元还带夜跑灯飞利浦A6606骨传导运动耳机有点不一样1。前言从2019年用上第一副骨传导耳机至今,我应该体验过不下于10款这类产品,可以说对于骨传导耳机是略知一二。首先我是喜欢骨传导耳机的,因为平时自己的一大爱好就是户外跑步,相比于
苹果缩短与安卓的差距?iPhone14Pro配8G内存,取消屏下指纹解锁iPhone14Pro又爆新料了!根据供应链的消息,iPhone14Pro和14ProMax将配备8G内存,这意味着苹果与安卓手机的差距在缩小,也将是iPhone有史以来配备最大的
红米K40主观体验是一个平价好手机,但是还可以更好春节趁京东有优惠活动入手了红米K40,1749元的价格真香!今天是到手第十五天,意味着彻底成为主力机了,借此机会写一下体验感受外观首先从外观说起,看到好多朋友都更喜欢晴雪白,最讨厌
无奈之举,华为在减配路上越走越远根据知名数码博主爆料,华为将在近期发布三款不算新品的新品,分别是P50E4gMate40EproMatepad10。4,这里面Mate40Epro肯定将采用麒麟9000L处理器,M
苹果最完美的系统?IOS16曝光四大升级获果粉点赞在数码市场,一款安卓新旗舰发布之后,热度大约能维持三个月左右。但iPhone则不同,苹果在手机市场自带流量,新旗舰发布几个月之后,下一款iPhone又会成为网友关注的新焦点。关于i
汇通达上市提振江苏三农板块2月18日,有下沉市场第一股和农村版淘宝之称的汇通达登陆港交所,截至当日收盘,汇通达股价上涨4。88至45。1港元,总市值超252亿港元。消息传开,搅动了江苏三农板块一池春水。新华
数据中心上市公司汇总数据中心上市公司汇总网宿科技(300017)市值174。0亿公司主要向客户提供全球范围内的内容分发与加速服务器托管与租用以及面向运营商的网络优化解决方案等服务,是中国领先的CDN及
短视频科普互动问答阅读直播数字时代如何提升大众信息素养从结绳记事到互联网,媒介演变正在降低信息传播的成本和难度。进入数字时代,很多知识内容通过短视频问答直播等形式传播,让受众有机会了解到更多有价值信息学习到更多新知识,激发起大众学习和
PythonOS文件目录方法os模块提供了非常丰富的方法用来处理文件和目录,其中path表示文件的路径,可以使用绝对路径和相对路径。绝对路径是这个文件在存储盘中的位置如C360SafeSoftMgr相对路径是
手机投屏电视方式鸿蒙系统手机首先需要做一项准备工作,您需要确认您的手机和家里的电视机连接的是同一个无线网络。打开电视机,利用遥控器找到电视机的设置功能,进入后找一下关键词,因为每个电视机的设置名称