我在 .sh 脚本中有这个函数:
prepare_for_test(){
stopresources;
initresources;
if [ "$1" = "--gf" ]; then
startglassfish;
fi
docker ps;
notify-send "Done!" "You can now test" -t 10000;
};
脚本的名称是 preparefortests.sh。当我在 bash 上运行它时,传递 --gf 或“--gf”:preparefortests.sh --gf
它不运行别名 startglassfish,就好像那个 if 语句是假的一样。我什至尝试添加对参数的检查:
if [ "$1" ] && [ "$1" != "--gf" ]; then
echo "uknown parameter $1"
fi
但它也不起作用,例如我尝试像这样运行它:preparefortests.sh hello
我期待“未知参数你好”。我究竟做错了什么?
最佳答案
比较语句是正确的:
if [ "$1" = "--gf" ]; then
startglassfish;
fi
可能还有其他问题,例如:写
prepare_for_test $1
if [ "$1" = "--gf" ];then
${BASH_ALIASES[startglassfish]};
fi
关于bash - 等于和不等于运算符在 bash 脚本中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70019759/