简单BASH如果其他

时间:2011-04-02 19:37:57

标签: bash

好的,我不能因为某种原因让这个工作

 if /etc/mysql/my.cfn exist
    then goto end;
else bash install.sh;

end exit;;

提前致谢, 乔

5 个答案:

答案 0 :(得分:10)

检查是否存在,如果为真,则运行install.sh

[[ ! -e /etc/mysql/my.cfn ]] && bash install.sh

答案 1 :(得分:8)

这是一个相对字面的翻译:

if [ -e /etc/mysql/my.cfn ]; then
    exit # Note: bash does not have a goto command
else
    bash install.sh
fi

或者,消除不相关的条件,并反转测试:

if [ ! -e /etc/mysql/my.cfn ]; then
    bash install.sh
fi

答案 2 :(得分:5)

bash中没有参数的:命令是无操作的,所以如果你不需要什么,你可以在if-body中使用它。

if something; then
    :
else
    do something else
fi

当然,您通常希望将其写为:

if ! something; then
    do something else
fi

something || do something else

答案 3 :(得分:4)

你在Bash的一行中的四行:

[[ -e /etc/mysql/my.cfn ]] && exit || bash install.sh

你的意思是我的。 cnf

答案 4 :(得分:1)

(一)正确的语法是:

if [[ expression ]]; then
  command
else
  command
fi

传统风格是:

if test -f filename; then
  command
fi