Bash脚本gui!怎么修?

时间:2018-02-02 13:03:54

标签: bash shell

我想用文字gui使用bash脚本 这是我的代码!

  #!/bin/bash
red='\033[0;31m'
NC='\033[0;37m'
clear
#<-Main Menu
echo -e "
#---------------------------------#
|            $red Hello  $NC      |        
#---------------------------------#
| 1: Choice 1                     |     
#---------------------------------#
"

输出

#---------------------------------#
|                Hello        |        #Here is it
#---------------------------------#
| 1: Choice 1                     |               
#---------------------------------#
Your choice is ?(number): 

如何解决? :C

1 个答案:

答案 0 :(得分:0)

重组怎么样?也许是这样的事情?

#!/usr/bin/env bash

function showmenu() {
        # options:
        #   $1 - menu name (string)
        #   $2 - name of argument array
        red='\033[0;31m'
        NC='\033[0;37m'
        printf '#'; printf '%.0s-' {1..33}; printf '#\n'
        printf '|'; n=${#1}; printf "${red}%$((16+n/2))s${NC}" "$1"; printf " %${n}s" " "; printf '|\n'
        printf '#'; printf '%.0s-' {1..33}; printf '#\n'
        local -n items="${2}"
        local count=0
        for item in "${items[@]}"; do
          printf '| %-2s %-29s|\n' "$((++count))." "$item"
        done
        printf '#'; printf '%.0s-' {1..33}; printf '#\n'
}

testitems=(foo bar "This is a longer item")

showmenu "Hello there" testitems
read -p 'Your choice is ?(number): ' choice

如果您有这种冲动,您当然可以根据输入内容对菜单进行更多的数学计算。