bash - 在 ksh 中比较字符串是否相等

标签 bash unix shell ksh

我正在使用下面的 shell 脚本进行测试:

#!/bin/ksh -x


instance=`echo $1 | cut -d= -f2`
if [ $instance == "ALL" ]
then
echo "strings matched \n"
fi

它在 if 条件下给出了这个错误:

: ==: unknown test operator

== 真的不是正确的语法吗? 我在命令行上运行如下

test_lsn_2 INSTANCE=ALL

有人可以提出解决方案吗? 谢谢。

最佳答案

要比较字符串,您需要单个 =,而不是 double 。如果字符串为空,您应该将其放在双引号中:

if [ "$instance" = "ALL" ]
then
    echo "strings matched \n"
fi

关于bash - 在 ksh 中比较字符串是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1660507/

相关文章:

bash - 使用不带参数的 getopts 获取帮助输出

bash - 来自 kubernetes 的脚本备份命名空间、部署等

linux - 如何在 BASH 中将两个表相乘

unix find 命令以 '+' 字符结尾

shell - grep/sed/awk 删除某一行之前的所有内容

从 CGI 调用重新启动脚本未完全重新启动

bash - 使用 sed 批量重命名文件

unix - 比较两行,如果模式在任何顺序行的两列之间重复,则只打印一行

mysql - 如何将多个 MySQL 列提取到 shell 脚本中的环境变量?

linux - 如何保留 zip 压缩后原始文件的时间戳?