Chinaunix

标题: bash打印法国国旗 [打印本页]

作者: W.Z.T    时间: 2015-11-17 13:50
标题: bash打印法国国旗


github code
  1. #!/bin/bash

  2. declare -i MAX_COL_NUM
  3. declare -i MAX_ROW_NUM

  4. declare -i START_ROW=1
  5. declare -i START_COL=1

  6. flag_init()
  7. {
  8.         echo -ne "\033[2J"
  9.         MAX_ROW_NUM=`stty size|cut -d " " -f 1`
  10.         MAX_COL_NUM=`stty size|cut -d " " -f 2`
  11.         echo $MAX_ROW_NUM $MAX_COL_NUM
  12. }

  13. flag_draw_single()
  14. {
  15.         local i j

  16.         i=$1
  17.         for ((j = $2; j <= $3; j++))
  18.         do
  19.                 echo -e "\033[${i};${j}H\033[$4;31m \033[0m"
  20.         done
  21. }

  22. flag_draw()
  23. {
  24.         local i j

  25.         for i in `seq 2 $((MAX_ROW_NUM-1))`
  26.         do
  27.                 k=$((MAX_COL_NUM/3))
  28.                 flag_draw_single $i 0 $k 44
  29.                 flag_draw_single $i $k $((k*2)) 47
  30.                 flag_draw_single $i $((k*2)) $((k*3 - 1)) 41
  31.         done
  32. }

  33. flag_init
  34. flag_draw
复制代码

作者: tc1989tc    时间: 2015-11-17 22:02
不错啊
作者: qq58945591    时间: 2015-11-17 22:36
好屌~  

同理,应该也能画出毛子国旗.... 哪位大神改造下. 静静看你们装逼..
作者: lgfang    时间: 2015-11-18 13:55
本帖最后由 lgfang 于 2015-11-18 13:57 编辑

俄罗斯:
  1. #!/bin/bash

  2. # screen size
  3. lines=$(tput lines)
  4. cols=$(tput cols)

  5. # flag height:width == 2:3, terminal font cell height:width=5:2(?)
  6. if [ $cols -gt $((lines * 15 / 4)) ]; then
  7.     cols=$((lines * 15 / 4))
  8. else
  9.     lines=$((cols * 4 / 15))
  10. fi

  11. # Do not check result size, assuming screen always big enough.

  12. pad=$(eval "printf ' %.s' {1..$cols}")
  13. rows=$(eval "echo {1..$((lines/3))}")

  14. for color in "\e[107m" "\e[44m" "\e[41m"; do
  15.     for row in $rows ; do
  16.         echo -e "${color}${pad}"
  17.     done
  18. done

  19. echo -en "\e[0m"                # restore
复制代码
法国的:
  1. #!/bin/bash

  2. # screen size
  3. lines=$(tput lines)
  4. cols=$(tput cols)

  5. # flag height:width == 2:3, terminal font cell height:width=5:2(?)
  6. if [ $cols -gt $((lines * 15 / 4)) ]; then
  7.     cols=$((lines * 15 / 4))
  8. else
  9.     lines=$((cols * 4 / 15))
  10. fi

  11. # Do not check result size, assuming screen always big enough.

  12. # blue:white:red=1:1:1 (actual ratio 30:33:37)
  13. pad=$(eval "printf ' %.s' {1..$((cols / 3))}")
  14. rows=$(eval "echo {1..$lines}")

  15. for row in $rows ; do
  16.     echo -e "\e[44m${pad}\e[107m${pad}\e[41m${pad}"
  17. done

  18. echo -en "\e[0m"                # restore
复制代码

作者: reyleon    时间: 2015-11-18 14:40
bash 来只鸡
作者: XQKA    时间: 2015-11-18 14:51
yo?这个屌了
作者: 昭襄王    时间: 2015-11-19 16:42
谁给写个斯里兰卡的
作者: substr函数    时间: 2015-11-20 10:38
长见识了
可以这么玩[]
作者: yestreenstars    时间: 2015-11-20 12:03
有本事来个五星红旗~
作者: liaosnet    时间: 2015-11-20 13:13
颜色不对呀~中间是白色~
作者: seanking1987    时间: 2015-11-20 13:17
来个中国国旗最牛了~~~五角星怎么画。。
貌似只能以竖线横线分割吧
作者: ckf513728912    时间: 2015-11-25 10:26
牛啊              
作者: zzz2738    时间: 2015-11-30 21:09
我给来个五星的

111.jpg (3.73 KB, 下载次数: 92)

111.jpg





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2