2015-04-16 41 views
0

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

#!/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 
+1

对话框的所有输出重定向发生了什么?这可能是一个简单的“read -p”等等选择命令吗? – Barmar

+0

你如何运行脚本? – choroba

+0

在Ubuntu 14.04和./sudo myscript.sh上打开终端。嗯,它只工作,如果没有安装X? –

回答

0

正确的命令是:

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

谢谢你们!