Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 忽略多个可能值的Case语句_Linux_Shell_Case Statement - Fatal编程技术网

Linux 忽略多个可能值的Case语句

Linux 忽略多个可能值的Case语句,linux,shell,case-statement,Linux,Shell,Case Statement,我想执行一个shell脚本,该脚本包含以下代码 value=`echo "false"` case $1 in "26492|26851|27407|26493") value=`echo "true"` ;; esac 如果第一个参数是指定值中的一个,则将打印单词true,否则将打印单词false 26492 | 26851 | 27407 | 26493 我没有得到所需的输出 我像这样执行了sh-x脚本名27407 有人能帮忙吗?这里有两个问题: 不能将选项指示符(管道

我想执行一个shell脚本,该脚本包含以下代码

value=`echo "false"`
case $1 in "26492|26851|27407|26493")
     value=`echo "true"`
     ;;
esac
如果第一个参数是指定值中的一个,则将打印单词true,否则将打印单词false

26492 | 26851 | 27407 | 26493

我没有得到所需的输出

我像这样执行了
sh-x脚本名27407


有人能帮忙吗?

这里有两个问题:

  • 不能将选项指示符(管道符号,
    |
    )括在引号内,因为这使bash将整个字符串视为一个可能的值
  • 您的
    echo
    语句包含在后面的记号中,并且该记号被分配给
    。因此,所发生的事情不是将
    true
    作为输出,而是将
    value
    的值更改
  • 尝试:


    这里有两个问题:

  • 不能将选项指示符(管道符号,
    |
    )括在引号内,因为这使bash将整个字符串视为一个可能的值
  • 您的
    echo
    语句包含在后面的记号中,并且该记号被分配给
    。因此,所发生的事情不是将
    true
    作为输出,而是将
    value
    的值更改
  • 尝试:


    @约瑟图拉西:如果你发现一个答案有用,你就投它一票;如果答案解决了你的问题,你就接受它。。。这就是我们在StackOverflow上感谢大家的方式。欢迎来到这个网站,很高兴我能帮上忙:-)@JyothiTulasi:如果你发现一个有用的答案,你就投它一票;如果答案解决了你的问题,你就接受它。。。这就是我们在StackOverflow上感谢大家的方式。欢迎来到这个网站,很高兴我能帮忙:-)value=false有什么问题吗?用
    echo
    替换命令增加了什么?value=false有什么问题?用
    echo
    替换命令添加了什么?
    case $1 in 26492|26851|27407|26493)
         echo "true"
         ;;
    esac