2016-07-27 59 views
0

我已經在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後,它工作正常。非常感謝:) –

回答

0

當你想調用在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行附近跳出 –

0

雖然調用該函數,您不需要使用paratheses()調用函數名稱。 替換行如下:

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

刪除Paranthesis後,它工作正常。非常感謝 :) –

相關問題