相关疑难解决方法(0)

使用不等于运算符进行字符串比较

我试图检查PHONE_TYPE变量是否包含三个有效值之一。

if [ "$PHONE_TYPE" != "NORTEL" ] || [ "$PHONE_TYPE" != "NEC" ] ||
   [ "$PHONE_TYPE" != "CISCO" ]
then
    echo "Phone type must be nortel,cisco or nec"
    exit
fi
Run Code Online (Sandbox Code Playgroud)

上面的代码对我不起作用,所以我尝试了这个:

if [ "$PHONE_TYPE" == "NORTEL" ] || [ "$PHONE_TYPE" == "NEC" ] ||
   [ "$PHONE_TYPE" == "CISCO" ]
then
    :        # do nothing
else
    echo "Phone type must be nortel,cisco or nec"
    exit
fi
Run Code Online (Sandbox Code Playgroud)

这种类型的任务有更干净的方法吗?

shell shell-script

165
推荐指数
4
解决办法
58万
查看次数

如何在算术表达式中安全地使用关联数组?

一些类似 Bourne 的 shell 支持关联数组:(ksh93自 1993 年以来)、zsh(自 1998 年以来)、bash(自 2009 年以来),尽管 3 之间的行为存在一些差异。

一个常见的用途是计算某些字符串的出现次数。

但是,我发现以下内容:

typeset -A count
 (( count[$var]++ ))

对某些值不起作用$var,我听说如果 的内容处于或可能处于攻击者的控制之下,它甚至会构成任意命令执行漏洞$var

这是为什么?有问题的价值观是什么?我该如何解决它?

security bash ksh zsh associative-array

17
推荐指数
1
解决办法
610
查看次数

标签 统计

associative-array ×1

bash ×1

ksh ×1

security ×1

shell ×1

shell-script ×1

zsh ×1