linux - bash:使用(( "$var"== "string"))进行比较的语法错误

标签 linux bash

我有这段代码:

if(("$op" == "q")); then

抛出这个错误:

l5p3.sh: line 10: ((: + == q: syntax error: operand expected (error token is "== q")

有什么问题吗?如何比较 $op 和字母 $q ?

最佳答案

(( ... )) (用于算术表达式)可能不是您想要的。检查以下内容:

if (("asd" == "bla")); then
  echo test
else
  echo bah
fi

它在 Bash 中打印 test 并在像 dash 这样严格兼容 bourne 的 shell 中打印错误。

请尝试以下操作:

if [[ $op == q ]]; then

关于linux - bash:使用(( "$var"== "string"))进行比较的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9881609/

相关文章:

linux - Linux 如何知道它在 x86-64 架构上的最大物理地址范围?

c - fread/ftell 显然在 Windows 下损坏,在 Linux 下工作正常

linux - 删除文件夹,不管它们是否为空

bash - 如果只有一个实例正在运行,是否继续执行脚本?

linux - 监听音频线

perl - Perl 中的 bash 导出等效于什么?

bash - 我怎样才能延迟运行shell脚本

linux - 寻找删除当前行和前后一行并替换当前行的方法

java - 命令行选项适用于 Windows,但不适用于 Linux

python - 在 150 多个服务器上运行简单命令时,Paramiko 会挂起