将几种颜色作为选择菜单,通过select实现选择并赋给变量COL1 COL2
完整的效果如下:

以下是完整的代码,请遵循GPL:
#!/bin/bash
#==================================================================
# Copyright (C) 2018Westos All rights reserved.
#
# FileName:chess.sh
# Author: 知行至之
# Mail: 291556677@qq.com
# Date:2018-05-07
# Description: 知行至之的国际象棋棋盘
# Blog: http://blog.51cto.com/4081735
# Lisense: GPL
#
#=================================================================
read -p "Please input cell's height: " HI
echo
read -p "Please input cell's width: " WI
echo
[[ "$HI" =~ ^[0-9]+$ ]] && [[ "$WI" =~ ^[0-9]+$ ]] || { echo "Invalid argu,Please input Numeric"; exit; }
echo "====================="
PS3="Please choose the Player1's Board Color(1-7): "
select COL1 in red green yellow blue purple skyblue white;do
case $COL1 in
red)
echo Player's color is $COL1
let COL1=1
break
;;
green)
echo Player's color is $COL1
let COL1=2
break
;;
yellow)
echo Player's color is $COL1
let COL1=3
break
;;
blue)
echo Player's color is $COL1
let COL1=4
break
;;
purple)
echo Player's color is $COL1
let COL1=5
break
;;
skyblue)
echo Player's color is $COL1
let COL1=6
break
;;
white)
echo Player's color is $COL1
let COL1=7
break
;;
esac
done
echo
echo "====================="
echo
PS3="Please choose the Player2's Board Color(1-7): "
select COL2 in red green yellow blue purple skyblue white;do
case $COL2 in
red)
echo Player2's color is $COL2
let COL2=1
break
;;
green)
echo Player2's color is $COL2
let COL2=2
break
;;
yellow)
echo Player2's color is $COL2
let COL2=3
break
;;
blue)
echo Player2's color is $COL2
let COL2=4
break
;;
purple)
echo Player2's color is $COL2
let COL2=5
break
;;
skyblue)
echo Player2's color is $COL2
let COL2=6
break
;;
white)
echo Player2's color is $COL2
let COL2=7
break
;;
esac
done
echo
echo "====================="
echo
for i in {1..8};do
if [ $[i%2] -eq 1 ];then
for j in `seq $HI`;do
for k in {1..8};do
if [ $[k%2] -eq 1 ];then
echo -e " 33[1;4$[$COL1]m`printf "%$[$WI]s"` 33[0mc"
else
echo -e " 33[1;4$[$COL2]m`printf "%$[$WI]s"` 33[0mc"
fi
let k++
done
echo
let j++
done
else
for j in `seq $HI`;do
for k in {1..8};do
if [ $[k%2] -eq 1 ];then
echo -e " 33[1;4$[$COL2]m`printf "%$[$WI]s"` 33[0mc"
else
echo -e " 33[1;4$[$COL1]m`printf "%$[$WI]s"` 33[0mc"
fi
let k++
done
echo
let j++
done
fi
let i++
done










