Bash脚本跳过对话框用户输入

Bash脚本跳过对话框用户输入,bash,dialog,Bash,Dialog,我目前正在编写一个安装脚本来自动安装hadoop主程序和从程序。因为我有时需要用户输入来配置IP地址等等,所以我正在安装脚本中的“dialog”。但是,脚本跳过对话框并继续。为什么? #!/bin/bash if [ $(whoami) != "root" ]; then echo "Must be run as root." exit 1 fi sudo apt-get update sudo apt-get -y upgrade sudo apt-get install

我目前正在编写一个安装脚本来自动安装hadoop主程序和从程序。因为我有时需要用户输入来配置IP地址等等,所以我正在安装脚本中的“dialog”。但是,脚本跳过对话框并继续。为什么?

#!/bin/bash

if [ $(whoami) != "root" ];
then
    echo "Must be run as root."
    exit 1
fi

sudo apt-get update
sudo apt-get -y upgrade

sudo apt-get install -y dialog

choice=`dialog --clear --backtitle -"bla bla" --radiolist "Hadoop Install" 10 40 3 1 "Master" on "Slave" off 3>&1 1>&2 2>&3`
dialog --clear
clear

TYPE="hadoopmaster"

case $choice in
    1)  echo "Master"
        TYPE="hadoopmaster";;
    2)  number=`dialog --clear --backtitle -"blaa" --  
        inputbox "Slave Number" 0 0 "" 3>&1 1>&2 2>&3`
        dialog --clear
        clear
        TYPE="hadoopslave"$number;;
esac

apt-get update
apt-get install -y curl
apt-get install -y git 

正确的命令是:

choice=`dialog --clear --backtitle -"bla bla" --radiolist "Hadoop Install" 10 40 3 1 "Master" on 2 "Slave" off 3>&1 1>&2 2>&3`

谢谢大家

对话框的所有输出重定向是怎么回事?对于一个简单的
read-p“blah blah”选择
命令来说,这是不是太过分了?如何运行脚本?在Ubuntu 14.04和./sudo myscript.sh上打开终端。Hm只有在没有安装X的情况下才能工作吗?
set-vx
是你的朋友。另外,使用
/full/path/to/dialog
可能会有所帮助。祝您好运。您的第一个
对话框
命令显示:
错误:应为3个参数,但仅找到2个。
。顺便说一句,建议添加
set-e
,以便脚本在任何命令失败时退出。你可能刚刚犯了那个错误。