这是我的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
我不明白什么是错的。有没有其他方法进行字符串比较?
答案 0 :(得分:5)
如果要编写bash脚本,请不要编写POSIX shell脚本:将shebang行更改为:
#!/bin/bash
另一方面,如果要编写可移植的shell脚本,请使用case
语句:
case "$ENV" in
DEV*)
RUNTIME_CLASSPATH=$(cat ../build/dev.classpath)
echo "cp: $RUNTIME_CLASSPATH"
;;
esac
答案 1 :(得分:-1)
更改
if [[ "$ENV" == DEV* ]]; then
到
if [ "$ENV" == "DEV" ]; then