这是我的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
.