今天主要分享一個有趣的shell腳本,實現打印國際象棋棋盤,主要看裡面的邏輯是怎麼實現的。
#!/bin/bash #set chess cell's width read -p "Please set the chess cell's width( two space width as unit ):" width if [[ $width =~ "^[0-9] $" ]];then echo "wrong width setting, check your input and try again." exit fi let width=$width*2 #choose player's board cell color player="player1" PS3="Which color do you want to set for $player :" select choice in red green yellow blue purple cyan white;do case $REPLY in [1-7]) if [[ $player == player2 ]];then declare -i color2=$REPLY break else declare -i color1=$REPLY fi player="player2" PS3="Which color do you want to set for $player :" ;; *) ;; esac done if (( color1==color2 ));then echo "two player must choose different color, check your choice and try again." exit fi #print the chess board for (( i=0; i<4; i )); do for (( j=0; j<$width/2; j ));do for (( k=0; k<4; k ));do echo -e "\e[4${color1}m$(printf %${width}s)\e[0m\c" echo -e "\e[4${color2}m$(printf %${width}s)\e[0m\c" done echo done for (( j=0; j<$width/2; j ));do for (( k=0; k<4; k ));do echo -e "\e[4${color2}m$(printf %${width}s)\e[0m\c" echo -e "\e[4${color1}m$(printf %${width}s)\e[0m\c" done echo done done
實現效果:
後面會分享更多devops和DBA方面内容,感興趣的朋友可以關注下!
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!