一.打印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脚本的更多相关文章

  1. linux基础—课堂随笔_03 SHELL脚本编程基础

    shell脚本编程基础 条件选择:if语句 选择执行: 注意:if语句可嵌套 单分支 if(开头)判断条件:then条件为真的分支代码 fi(结尾) 双分支 if(开头)判断条件:then条件为真的分 ...

  2. Shell基础(一):Shell基础应用、简单Shell脚本的设计、使用Shell变量、变量的扩展应用

    一.Shell基础应用 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 切换用户的Shell环境       2> 练习命令历史.命令别名       3 ...

  3. shell编程基础(三): 位置参数与shell脚本的输入输出

    一.位置参数和特殊变量 有很多特殊变量是被Shell自动赋值的,我们已经遇到了$?和$1,现在总结一下: 常用的位置参数和特殊变量: $0 相当于C语言main函数的argv[0] $1.$2... ...

  4. 简单的 Shell 脚本入门教程

    Shell脚本 运作方式与解释型语言相当,如果有语言基础,学起 Shell 脚本就非常容易,但是 Shell 与常见的语言不同,一些常见的函数在 Shell 中需要组合一些命令得以实现 工具推荐 Sh ...

  5. Shell脚本编程具体解释

    第12章 Shell脚本编程   l  Shell命令行的执行 l  编写.改动权限和运行Shell程序的步骤 l  在Shell程序中使用參数和变量 l  表达式比較.循环结构语句和条件结构语句 l ...

  6. Shell 脚本实现 Linux 系统监控

    一.实验介绍 1.1 实验内容 本课程实现 shell 脚本监控系统的各项参数,并可以将脚本加入系统环境中,可以直接在终端里执行.还添加了几个参数,一个脚本可以执行不同的操作. 1.2 知识点 本实验 ...

  7. 学习 shell脚本之前的基础知识

    转载自:http://www.92csz.com/study/linux/12.htm  学习 shell脚本之前的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写sh ...

  8. Linux shell脚本编程基础之练习篇

    shell脚本编程基础之练习篇. 1.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. #!/bin/bash ] then echo "请输入一个参数& ...

  9. shell脚本基础知识

    虽然现在能在Linux系统下生存,但是自觉效率太低,和高手有很大的差距. 这就是关于Linux的知识太过匮乏,有很多事情知道该怎么做,但是就是没法在Linux下实现,为了提升工作效率,必须要接触Lin ...

随机推荐

  1. 理解 nodeJS 中的 buffer,stream

    在Node.js开发中,当遇到 buffer,stream,和二进制数据处理时,你是否像我一样,总是感到困惑?这种感觉是否会让你认为不了解它们,以为它们不适合你,认为而这些是Node.js作者们的事情 ...

  2. APP开发工具如何选?

    随着技术的发展,在当前开发一款APP已经非常的简单和快速.特别是近些年,利用HTML5技术将APP的开发门槛进一步降低.各种开发工具和框架层出不穷,令人眼花缭乱.这么多的工具摆在眼前应该如何进行选择呢 ...

  3. Zenject与UniRx结合实现跨线程通信Signal

    修改Zenject下ProfileBlock.cs源码, 取消有关UnityEngine.Profiling.Profiler的代码. 然后使用Zenject的Signal: // 定义Signal ...

  4. 2019-08-05 纪中NOIP模拟B组

    T1 [JZOJ1432] 输油管道 题目描述 请你帮忙设计一个从城市M到城市Z的输油管道,现在已经把整个区域划分为R行C列,每个单元格可能是空的也可能是以下7种基本管道之一: 油从城市M流向Z,‘+ ...

  5. ASP.NET + MVC5 入门完整教程四---MVC 中使用扩展方法

    https://blog.csdn.net/qq_21419015/article/details/80433640 1.示例项目准备1)项目创建新建一个项目,命名为LanguageFeatures ...

  6. Java爬虫学习(1)之爬取新浪微博博文

    本次学习采用了webmagic框架,完成的是一个简单的小demo package com.mieba.spiader; import us.codecraft.webmagic.Page; impor ...

  7. 洛谷 1219:八皇后 (位运算 & DFS)

    题目链接: https://www.luogu.org/problem/show?pid=1219#sub row:受上面的皇后通过列控制的位置 ld:受上面的皇后通过从右至左的斜对角线控制的位置 r ...

  8. 算法_hdoj_1005

    Question: Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 6 ...

  9. [AGC027E]ABBreviate

    Description AGC027E 给定一个仅由\(AB\)构成的字符串\(S\),给定两个操作,把\(AA\)换成\(B\),和把\(BB\)换成\(A\),问由这个字符串和任意次操作可以得到几 ...

  10. Jarvis OJ - 软件密码破解-1 -Writeup

    Jarvis OJ - 软件密码破解-1 -Writeup 转载请标明出处http://www.cnblogs.com/WangAoBo/p/7243801.html 记录这道题主要是想记录一下动态调 ...