我想执行一个包含以下代码的shell脚本。
value=`echo "false"`
case $1 in "26492|26851|27407|26493")
value=`echo "true"`
;;
esac
如果第一个参数是一个指定的值,则会打印一个单词 true ,否则将打印 false
26492 | 26851 | 27407 | 26493
我没有得到所需的输出。
我已按此sh -x script name 27407
执行。
有人可以帮忙吗?
答案 0 :(得分:2)
这里有两个问题:
|
),因为这会使bash将整个字符串视为单个可能的值。echo
语句包含在后面的标记中,并且已分配给value
。所以会发生什么,而不是将true
作为输出,而是让value
的价值发生了变化。尝试:
case $1 in 26492|26851|27407|26493)
echo "true"
;;
esac