一些基础但有趣的shell脚本
一.打印9*9乘法表
#!/bin/bash
for i in `seq 9`
do
for j in `seq $i`
do
echo -n "$i*$j=$[i*j]"
done
echo
done
二.剪刀石头布小游戏
#!/bin/bash
2 game=(石头 剪刀 布)
num=$[RANDOM%]
computer=${game[$num]}
#随机生成出拳可能并存入数组game[$num]:game[],game[],game[]分别代表石头,剪刀,布
echo "请根据以下提示选择出拳手势"
echo "石头:1 剪刀:2 布:3"
read -p "请出拳:(1,2,3)": person
case $person in
)
if [ $num -eq ];then
echo "平局"
elif [ $num -eq ];then
echo "你赢"
else
echo "计算机赢"
fi;;
)
if [ $num -eq ];then
echo "计算机赢"
elif [ $num -eq ];then
echo "平局"
else
echo "你赢"
fi;;
)
if [ $num -eq ];then
echo "你赢"
elif [ $num -eq ];then
echo "计算机赢"
else
echo "平局"
三.猜数字小游戏
#!/bin/bash
#脚本生成一个100以内的随机数,提示用户猜数字,根据用户的输入,>提示猜对了,猜大了或猜小了,直到用户猜对为止.
num=$[RANDOM%+] #~100的随机数
read -p "计算机已生成一个1~100的随机数,请您猜:" cai1
l=
while :
do
let l++
if [ $l -eq ];then
if [ $cai1 -eq $num ];then
echo "恭喜,猜对了"
exit
elif [ $cai1 -gt $num ];then
echo "猜大了"
else
echo "猜小了"
fi
else
read -p "请继续:" cai2
if [ $cai2 -eq $num ];then
echo "恭喜,猜对了"
exit
elif [ $cai2 -gt $num ];then
echo "猜大了"
else
echo "猜小了"
fi
fi
done
四.给三个随机数字排序
1.交互式
#!/bin/bash
#依次提示用户输入三个整数,脚本根据数字大小排序输出3个数字
read -p "请输入一个整数:" num1
read -p "请输入一个整数:" num2
read -p "请输入一个整数:" num3
#从小到大排序,设定最后输出num1,num2,num3,脚本运行中将最小,中间,最大值分别赋予这三个变量,引入对调变量tmp
tmp=
#如果num1大于num2则对调1和2,保持num1最小
if [ $num1 -gt $num2 ];then
tmp=$num1
num1=$num2
num2=$tmp
fi
#如果num1大于num3则对调1和3,保持num1最小
if [ $num1 -gt $num3 ];then
tmp=$num1
num1=$num3
num3=$tmp
fi
#如果num2大于num3则对调2和3,保持num2更小
if [ $num2 -gt $num3 ];then
tmp=$num2
num2=$num3
num3=$tmp
fi
echo "排序后的数据为:$num1,$num2,$num3"
2.非交互式
#!/binbash
l=
tmp=
for i in `cat /home/student/桌面/shell脚本/文档/paixu.txt` #一个含3个数字的文件
do
let l++
if [ $l -eq ];then
num1=$i
fi
if [ $l -eq ];then
num2=$i
if [ $num1 -gt $num2 ];then
tmp=$num1
num1=$num2
num2=$tmp
fi
fi
if [ $l -eq ];then
num3=$i
if [ $num1 -gt $num3 ];then
tmp=$num1
num1=$num3
num3=$tmp
fi
if [ $num2 -gt $num3 ];then
tmp=$num2
num2=$num3
num3=$tmp
fi
fi
done
echo "从小到大排序:$num1,$num2,$num3"
五.点名器
#!/bin/bash
#提前准备文件user.txt,一行一个姓名
read -p "请输入想要抽到的人数:" xxx
l=
while [ $l -le $xxx ]
do
let l++
line=`cat /home/student/桌面/shell脚本/文档/user.txt | wc -l`
num=$[RANDOM%line+]
sed -n "${num}p" /home/student/桌面/shell脚本/文档/user.txt
sleep 0.5
done![]()
六.打印国际象棋棋盘
#!/bin/bash
#两个变量i和j代表行和列
for i in {..}
do
for j in {..}
do
sum=$[i+j]
if [ $[sum%] -eq ];then #偶数
echo -ne "\033[46m \033[0m"
else
echo -ne "\033[47m \033[0m"
fi
done
echo
done
七.fork炸弹(会快速消耗计算机资源,导致计算机死机)(请在虚拟机中实验,千万不要在真机尝试,若操作失误请重启计算机)
.(){
.|.&
}
.
八.打印斐波那契数列(后一个数字永远是前两个数字之和)
#!/bin/bash
list=( )
for i in `seq `
do
list[$i]=`expr ${list[-]} + ${list[-]}`
done
echo ${list[@]}

九.打印一些特殊图形
#!/bin/bash
clear
for ((i=;i<=;i++))
do
for((j=;j<=i;j++))
do
echo -n "$i"
done
echo""
done
#图1

read -n1 "按任意键继续" key
clear
for ((i=;i<=;i++))
do
for((j=;j<=i;j++))
do
echo -n "|"
done
echo "_"
done
#图2

read -n1 "按任意键继续" key
clear
for ((i=;i<=;i++))
do
for((j=;j<=i;j++))
do
echo -n "*"
done
echo""
done for ((i=;i>=;i--))
do
for((j=;j<=i;j++))
do
echo -n "*"
done
echo""
done
#图3

一些基础但有趣的shell脚本的更多相关文章
- linux基础—课堂随笔_03 SHELL脚本编程基础
shell脚本编程基础 条件选择:if语句 选择执行: 注意:if语句可嵌套 单分支 if(开头)判断条件:then条件为真的分支代码 fi(结尾) 双分支 if(开头)判断条件:then条件为真的分 ...
- Shell基础(一):Shell基础应用、简单Shell脚本的设计、使用Shell变量、变量的扩展应用
一.Shell基础应用 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 切换用户的Shell环境 2> 练习命令历史.命令别名 3 ...
- shell编程基础(三): 位置参数与shell脚本的输入输出
一.位置参数和特殊变量 有很多特殊变量是被Shell自动赋值的,我们已经遇到了$?和$1,现在总结一下: 常用的位置参数和特殊变量: $0 相当于C语言main函数的argv[0] $1.$2... ...
- 简单的 Shell 脚本入门教程
Shell脚本 运作方式与解释型语言相当,如果有语言基础,学起 Shell 脚本就非常容易,但是 Shell 与常见的语言不同,一些常见的函数在 Shell 中需要组合一些命令得以实现 工具推荐 Sh ...
- Shell脚本编程具体解释
第12章 Shell脚本编程 l Shell命令行的执行 l 编写.改动权限和运行Shell程序的步骤 l 在Shell程序中使用參数和变量 l 表达式比較.循环结构语句和条件结构语句 l ...
- Shell 脚本实现 Linux 系统监控
一.实验介绍 1.1 实验内容 本课程实现 shell 脚本监控系统的各项参数,并可以将脚本加入系统环境中,可以直接在终端里执行.还添加了几个参数,一个脚本可以执行不同的操作. 1.2 知识点 本实验 ...
- 学习 shell脚本之前的基础知识
转载自:http://www.92csz.com/study/linux/12.htm 学习 shell脚本之前的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写sh ...
- Linux shell脚本编程基础之练习篇
shell脚本编程基础之练习篇. 1.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. #!/bin/bash ] then echo "请输入一个参数& ...
- shell脚本基础知识
虽然现在能在Linux系统下生存,但是自觉效率太低,和高手有很大的差距. 这就是关于Linux的知识太过匮乏,有很多事情知道该怎么做,但是就是没法在Linux下实现,为了提升工作效率,必须要接触Lin ...
随机推荐
- Java生鲜电商平台-生鲜电商订单结算系统的深入解析与反思总结
Java生鲜电商平台-生鲜电商订单结算系统的深入解析与反思总结 说明:最近疫情影响,生鲜电商这个行业被彻底的激活了,全中国人民都知道用小程序或者APP可以进行买菜了,但是可惜的是,我的生鲜电商在去年经 ...
- 143. 最大异或对(Trie树存整数+二进制)
在给定的N个整数A1,A2……ANA1,A2……AN中选出两个进行xor(异或)运算,得到的结果最大是多少? 输入格式 第一行输入一个整数N. 第二行输入N个整数A1A1-ANAN. 输出格式 输出一 ...
- WebRTC 之ICE浅谈
前言 ICE全称Interactive Connectivity Establishment:交互式连通建立方式. ICE参照RFC5245建议实现,是一组基于offer/answer模式解决NAT穿 ...
- 0107 spring操作数据库的3个架子
背景 数据库开发是java的核心内容之一,基础就是jdbc了: 然而直接使用jdbc,需要写大量的try-catch-finally模板代码: 管理系统使用hibernate作为orm框架比较方便,遵 ...
- ServletContext总结(转)
今天我们学习的是ServletContext的应用. WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用. ServletConfig对 ...
- 2019-08-01 纪中NOIP模拟B组
T1 [JZOJ2642] 游戏 题目描述 Alice和Bob在玩一个游戏,游戏是在一个N*N的矩阵上进行的,每个格子上都有一个正整数.当轮到Alice/Bob时,他/她可以选择最后一列或最后一行,并 ...
- 安装java jdk环境jdk1.8
1) yum 安装java jdk 1.8 * -y 验证java [root@localhost local]# java -version openjdk version "1.8.0_ ...
- Bootstrap入门(2)表格
Bootstrap入门(四)表格 <table>标签 首先,引入bootstrap的css文件,然后表格内容放在一个class为table的<table>标签中(class=& ...
- 给大家推荐一些Java初学者所看的书籍
一.适合初学者的经典Java书籍; 比方说<Java核心技术卷>,<Effective Java中文版(第2版)> 二.Java开发者必读: <clean code> ...
- Vue - 动态组件 & 异步组件
动态组件 <div id="app"> <components :is="com[2]"></components> < ...




