你如何在bash中调用程序并给出一个变量

时间:2011-10-20 18:15:17

标签: bash scripting

在bash脚本中尝试类似的东西时,我制作了这个片段:

#!/bin/bash
your_animal="fishies"
zenity --info --text="Do you like to eat $your_animal?"
if zenity --entry --title="Root Partition" \
--text="what is your favorite animal"
    then your_animal=$?
    else exit
fi
#echo $your_animal
zenity --info --text="Do you like to eat $your_animal?"
exit

打印

  你喜欢吃鱼吗?

     

你喜欢吃0吗?

也许我们可以把它变成wiki以解决其他语言中的同样问题,比如perl。

1 个答案:

答案 0 :(得分:1)

$?是上次执行的命令的状态。在您的情况下,它将为0,因此显示的文本"Do you like to eat 0?"是正确的。

要获取命令的输出,请使用

`command`

$(command)

试试这个:

result=$(zenity --entry --title="Root Partition" \
        --text="what is your favorite animal")
if [ $? = 0 ] ; then
    your_animal="$result"
else
    exit
fi