shell脚本100例

1.猜数字游戏
#!/bin/bash

#脚本生成一个100以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了
#猜大了或猜小了,直至用户猜对了脚本结束
#Random为系统自带的系统变量,值为0-32767的随机数
#使用取余算法将随机数变为1-100的随机数

num=

[

R

A

N

D

O

M

e

c

h

o

[RANDOM%100+1] echo ”

[RANDOMechonum”

#使用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 “Oops,猜大了”
else
echo “Oops,猜小了”
fi
done

2.检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不是,则提示您非管理员(使用字串对比版本)

#!/bin/bash

#检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不是,则提示您非管理员(使用字串对比版本)

if [ $USER == “root” ]
then
yum ‐y install vsftpd
else
echo “您不是管理员,没有权限安装软件”
fi

3.检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不是,则提示您非管理员(使用 UID 数字对比版本)

#!/bin/bash

#检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不是,则提示您非管理员(使用 UID 数字对比版本)

if [ $UID -eq 0 ];then
yum ‐y install vsftpd
else
echo “您不是管理员,没有权限安装软件”
fi

4.石头、剪刀、布游戏

#!/bin/bash
#编写脚本,实现人机<石头剪刀布>游戏

game=(石头 剪刀 布)
num=

[

R

A

N

D

O

M

c

o

m

p

u

t

e

r

=

[RANDOM%3] computer=

[RANDOMcomputer={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

5.统计/var/log 有多少个文件,并显示这些文件名

#!/bin/bash
#统计/var/log有多少个文件,并显示这些文件名
#使用ls递归显示所有,再判断是否为文件,如果是文件则计算器加1

cd /var/log
sum=0
for i in ls -r *
do
if [ -f

i

]

;

t

h

e

n

l

e

t

s

u

m

+

+

e

c

h

o

:

i ];then let sum++ echo “文件名:

i];thenletsum++echo:i”
fi
done
echo “总文件数量为:$sum”


版权声明:本文为weixin_45596153原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。