相关疑难解决方法(0)

如何使用变量作为 case 条件?

我正在尝试使用由不同字符串组成的变量|作为case语句测试。例如:

string="\"foo\"|\"bar\""
read choice
case $choice in
    $string)
        echo "You chose $choice";;
    *)
        echo "Bad choice!";;
esac
Run Code Online (Sandbox Code Playgroud)

我希望能够输入foobar执行case语句的第一部分。然而,无论是foobar带我去第二:

$ foo.sh
foo
Bad choice!
$ foo.sh
bar
Bad choice!
Run Code Online (Sandbox Code Playgroud)

使用"$string"而不是$string没有区别。使用string="foo|bar".

我知道我可以这样做:

case $choice in
    "foo"|"bar")
        echo "You chose $choice";;
    *)
        echo "Bad choice!";;
esac
Run Code Online (Sandbox Code Playgroud)

我可以想到各种解决方法,但我想知道是否可以case在 bash 中使用变量作为条件。是否可能,如果可能,如何?

bash shell-script case

22
推荐指数
3
解决办法
3万
查看次数

如何测试一个项目是否在 bash 数组中?

一个简单脚本的帮助

#!/bin/bash

array1=(
prova1
prova2
slack64
)

a="slack64"
b="ab"

if [ $a = $b ]
then
      echo "$a = $b : a is equal to b"
else
      echo "$a = $b: a is not equal to b"
fi
Run Code Online (Sandbox Code Playgroud)

这个脚本根本不起作用,我想要一个脚本来检查列表中是否存在 slack64(我使用数组),然后简单地给我,是存在或否。我不知道如何将数组与单个变量进行比较。

bash array

16
推荐指数
5
解决办法
11万
查看次数

标签 统计

bash ×2

array ×1

case ×1

shell-script ×1