如何在shell脚本中进行比较?

Tom*_*ito 8 linux bash shell command-line

如何在shell脚本中进行比较?

或者,为什么以下脚本不打印?

x=1
if[ $x = 1 ] then echo "ok" else echo "no" fi
Run Code Online (Sandbox Code Playgroud)

Wil*_*and 10

使用数字,使用-eq,-ne...等于等于,不等于......

x=1
if [ $x -eq 1 ]
then 
  echo "ok" 
else 
  echo "no" 
fi
Run Code Online (Sandbox Code Playgroud)

而对于其他人,请==不要使用=.

  • @Tom不使用'=='而不是'='.'test'命令(又名'['),无论是内置还是外置,通常接受'==',但'='更通用.使用'=='会不必要地限制脚本的可移植性. (4认同)

use*_*own 5

带有快捷方式 AND 和 OR 的简短解决方案:

x=1
(( $x == 1 )) && echo "ok" || echo "no"
Run Code Online (Sandbox Code Playgroud)