Bash没有正确比较字符串



这是我的bash文件

#!/bin/sh
ENV=DEV
echo "env: $ENV"
if [[ "$ENV" == DEV* ]]; then
    RUNTIME_CLASSPATH=$(cat ../build/dev.classpath)
    echo "cp: $RUNTIME_CLASSPATH"
fi
echo "done"

下面是终端输出:

~proj/bin$ ./test.sh 
env: DEV
./test.sh: 7: [[: not found
done

我不明白怎么了。有没有别的方法来做字符串比较?

如果您想编写bash脚本,那么不要编写POSIX shell脚本:将shebang行更改为:

#!/bin/bash
另一方面,如果您想编写一个可移植的shell脚本,请使用case语句:
case "$ENV" in 
  DEV*)
    RUNTIME_CLASSPATH=$(cat ../build/dev.classpath)
    echo "cp: $RUNTIME_CLASSPATH"
    ;;
esac

变化

if [[ "$ENV" == DEV* ]]; then

if [ "$ENV" == "DEV" ]; then

.

相关内容

  • 没有找到相关文章

最新更新