2012-03-13 79 views
2

我想一个if语句在我的bash脚本,做:bash脚本“如果”语句调用带有参数的函数

if [[ "$v" == "A" || my_func $x $y ]] ; then 

,但我得到的错误“有条件的二进制运算符预期”。 我试过在my_func调用中将参数放在参数的周围,但仍然没有好处。试图玩eval,这也没有帮助。

感谢您的任何帮助。

+0

'[[]]'是不是,如果语法部分; 'if'接受一个命令,'[[''恰好是一个可以作为命令的内建函数,但并不是所有传递给'if'的东西都需要在'[[]]数字比较(数字比较应该使用'(())')。 – 2012-03-13 14:30:59

+0

我不明白你为什么使用[[而不是[在这里。你可以简单地做到:if [“$ v”= A] || my_func $ x $ y;然后...甚至'测试$ v = A || my_func $ x $ y && ...' – 2012-03-13 14:57:53

回答

7

你可以试试:

if [[ "$v" == "A" ]] || my_func $x $y ; then 
+1

谢谢。这工作完美。也是有史以来最快答案的纪录! – user265330 2012-03-13 14:44:46