2015-12-21 133 views
0

我正在做一个简单的安装程序,它使用whiptail提示符进行用户输入。我希望能够设置默认文本。不幸的是--default-item不起作用,并且似乎仅适用于菜单项目。如何为bash whiptail输入框设置默认文本?

MYLARUSER=$(whiptail --inputbox "Enter the user to run Mylar as (usually pi)" 8 78 $MYLARUSER --title "$SECTION" 3>&1 1>&2 2>&3) 
exitstatus=$?; if [ $exitstatus = 1 ]; then exit 1; fi 

我试过用echo“default”| whiptail ......但它似乎没有做任何事情。

回答

0

所以我的问题是,我重新使用我定义的变量。这工作得益于this reddit user

MYLARUSER=$(whiptail --inputbox "Enter the user to run Mylar as (usually pi)" 8 78 "defaulttext" --title "$SECTION" 3>&1 1>&2 2>&3) 
exitstatus=$?; if [ $exitstatus = 1 ]; then exit 1; fi 
+0

重复使用变量没有任何问题。你只需要为它分配一个值(特别是默认文本)。如果您使用该变量作为默认文本,并且未定义该变量,那么当然不会显示默认文本。 – rici

+0

@rici,这可能是一个问题,如果我第一次定义它,我正在使用与文本相同的变量。注意我正在使用嵌套变量(或者我忘记了正确的名称)。 –

+0

在bash中没有嵌套变量。在命令替换中,您有一个环境,其中包含来自外壳的所有变量的副本,但修改将不起作用,但这与此无关。关键是首先定义变量。例如。 'V =“默认文字”; V = $(whiptail --input“Question”8 78“$ V”--title ...)'。就你而言,我想你会以'MYLARUSER = pi;'开始设置默认值。 – rici