天天看点

简单的SHELL脚本

1、输出88的国际象棋棋盘

#!/bin/bash

for i in {1..8}

do

for j in {1..8}

if [ $[(i+j)%2] -eq 0 ] ; then

echo -en "\033[41m \033[0m"

else

echo -en "\033[47m \033[0m"

fi

done

echo

2、输出99乘法表

for i in <code>seq 9</code>

for j in <code>seq $i</code>

echo -n "$i$j=$[i*j] "

3、使用 3 个 read 读取用户输入的 3 个整数,脚本按照大小排序依次输出 3 个数字?

read -p "请输入一个整数:" num1

read -p "请输入一个整数:" num2

read -p "请输入一个整数:" num3

#不管谁大谁小,最后都打印 echo "$num1,$num2,$num3"

#num1 中永远存最小的值,num2 中永远存中间值,num3 永远存最大值

#如果输入的不是这样的顺序,则改变数的存储顺序,如可以 num1 和 num2 的值对调

tmp=0

#如果 num1 大于 num2,就把 num1 和和 num2 的值对调,确保 num1 变量中存的是最小值

if [ $num1 -gt $num2 ];then

tmp=$num1

num1=$num2

num2=$tmp

#如果 num1 大于 num3,就把 num1 和 num3 对调,确保 num1 变量中存的是最小值

if [ $num1 -gt $num3 ];then

num1=$num3

num3=$tmp

#如果 num2 大于 num3,就把 num2 和 num3 对标,确保 num2 变量中存的是小一点的值

if [ $num2 -gt $num3 ];then

tmp=$num2

num2=$num3

echo "排序后数据为:$num1,$num2,$num3"

4、编写脚本,实现人机&lt;石头,剪刀,布&gt;游戏?

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

if [ $num -eq 0 ];then

echo "平局"

elif [ $num -eq 1 ];then

echo "你赢"

echo "计算机赢"

fi;;

echo "必须输入 1-3 的数字"

esac