一些基础但有趣的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 ...
随机推荐
- VAR模型学习笔记
目录 1 定义 VAR模型的具体步骤 建模步骤及公式 代码实现 1 定义 VAR模型除了分析自身滞后项的影响外,还分析其他相关因素的滞后项对未来值产生的影响参考 用来分析随机扰动对系统的动态冲击的大小 ...
- opensuse安装pycharm
最近在学习python,所以查询了很多资料,大多都推荐pycharm进行pychon项目开发.于是查阅一些资料,整理出这个安装步骤.(仅供参考!!!仅供参考!!!仅供参考!!!) 仅供参考!!!仅供参 ...
- 1047 Student List for Course
1039 Course List for Student 依靠unordered_map<string,set<int>> ans 解决问题. 这次依靠unordered_ma ...
- DM642学习:CMD、GEL文件
在建立ccs工程的时候,cmd文件和gel文件非常重要,如不能配置好会出现一些莫名其妙的问题. 1. CMD文件: 不同的DSP芯片内集成的存储器大小各异,但其配置方式是类似的.大家可通过查阅DSP芯 ...
- win10下安装es
1.安装前提 windows下已经安装好了jdk8的版本 2.下载ElasticSearch https://www.elastic.co/cn/downloads/elasticsearch#ga- ...
- 【转】C#路径中获取文件全路径、目录、扩展名、文件名称
C#路径中获取文件全路径.目录.扩展名.文件名称 原文链接:https://www.cnblogs.com/JiYF/p/6879139.html 常用函数 需要引用System.IO 直接可以调 ...
- Python获取最新电影的信息
这次将从电影天堂获取最新的电影的详细信息,这里电影的信息罗列的比较详细. 本来只是想获取电影的迅雷链接,然后用迅雷去下载.但看到这里的电影的信息比较完整和详细,忍不住把所有信息都爬取下来了. 下图是& ...
- Docker里面运行.net core
详细可以参考微软官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/docker/building-net-docker ...
- TCP/IP详解,卷1:协议--RARP:逆地址解析协议
引言 具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取 I P地址.但是无盘机, 如X终端或无盘工作站,则需要采用其他方法来获得 I P地址. 网络上的每个系统都具有唯一的硬件地址,它是由网络 ...
- jvm(1):内存结构
JVM内存结构 JVM内存的运行时数据区: 线程私有(在线程启动时创建) 程序计数器Program Counter Register 一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器, ...




