意外标记`else'附近的Bash语法错误

问题描述:

我已经在bash中编写了一个简单的脚本。但是当它运行时,它会给出标题中的错误。意外标记`else'附近的Bash语法错误

#!/bin/bash 

unix_OS=`uname` 

function_aix() 
{ 

    echo "This is AIX os" 

    } 


function_other() 

{ 

    echo " This could either be Linux/Solaris/Hp-UX" 

    } 

if [ $unix_OS == AIX ] 
then 

echo "executing aix function" 
    function_aix() 

else 

echo "other function" 
    function_other() 


fi 

任何建议都会有帮助!

+0

使用函数时,您不/不能使用'()'s。只需传递所需的任何参数,即“myFn arg1”arg 2“arg3”。祝你好运。 – shellter

+0

删除Paranthesis后,它工作正常。非常感谢:) –

当你想调用在bash的功能,你不应该把()
如果你的函数接受参数,你可以把他们旁边的函数调用:my_function "first" "second"

#!/bin/bash 

unix_OS=`uname` 

function_aix() 
{ 
    echo "This is AIX os" 
} 

function_other() 
{ 
    echo " This could either be Linux/Solaris/Hp-UX" 
} 

if [ $unix_OS == "AIX" ] 
then 
    echo "executing aix function" 
    function_aix 
else 
    echo "other function" 
    function_other 
fi 
+0

我写了一个脚本与nawk这是正常工作。但是,我得到了一个建议,“nawk”没有安装在大多数服务器上。请更新它以使用awk。当我在solaris中使用awk时,出现以下错误。 awk:第1行附近的语法错误 awk:在第1行附近跳出 –

虽然调用该函数,您不需要使用paratheses()调用函数名称。 替换行如下:

.... 
if [ $unix_OS == "AIX" ] 
then 
    echo "executing aix function" 
    function_aix 
else 
    echo "other function" 
    function_other 
.... 
+0

删除Paranthesis后,它工作正常。非常感谢 :) –