If语句每次都转到else-bash



我是新来的,所以我为我的错误道歉,也为我缺乏知识感到抱歉(我只是初学者)。所以它在这里,我正在和李一起做bash中的小脚本,我有if语句,这里是

#!/bin/bash
something=$(whiptail --inputbox "Enter some text" 10 30 3>&1 1>&2 2>&3)
if [ $something ?? 'you' ];
then
    echo "$something"
else
  echo "nope"
fi

具体地说,我想从中得到什么——我输入一些单词/句子/随便什么,如果它包含你们中的一些字符串,那么就打印它,但每次它都会变成其他的;_;。请帮忙。

编辑现在可以了,谢谢,但我需要检查字符串是否包含单词。

if [[ $string =~ .*My.* ]]

似乎不起作用

我一点也不明白,失去了希望,在上搜索网页

#!/bin/bash
OPTION=$(whiptail –title “Menu Dialog” –menu “Choose your option” 15 60 4  “1” “Grilled ham”  “2” “Swiss Cheese”  “3” “Charcoal cooked Chicken thighs”  “4” “Baked potatos” 3>&1 1>&2 2>&3)
exitstatus=$?
if [ $exitstatus = 0 ];
then echo “Your chosen option:” $OPTION
else echo “You chose Cancel.”
fi

我刚刚粘贴了这个脚本来检查它是如何工作的,并对它进行了修改,它不是我的脚本,它应该工作,但它说"你选择了取消。"

您可能正在寻找像==!=这样的字符串比较运算符。例如,

if [ "$something" == "you" ]; then
    echo "$something"
else
  echo "nope"
fi

如果$something等于you,则回波$something;否则回声CCD_ 6。

或者,正如David C.Rankin在他的评论中提到的,您可以检查字符串变量来证明字符串是否为空。例如,

if [ -z "$something"] ;then 

字符串为空

if [ -n "$something" ]; then

字符串为非空

有关此方面的更多信息,请查看TEST手册页面。

相关内容

  • 没有找到相关文章

最新更新