2016-07-27 3 views
0

Я написал простой скрипт в bash. Но когда я запускаю его, он дает ошибку в заголовке.Синтаксическая ошибка Bash возле неожиданного токена `else '

#!/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

при использовании функций, вы/не можете использовать '()' с. Просто передайте любые аргументы, т. Е. 'MyFn arg1" arg 2 "arg3'. Удачи. – shellter

+0

После удаления Paranthesis он отлично работал. Спасибо большое :) –

ответ

0

Если вы хотите, чтобы вызвать функцию в Баш, вы не должны ставить ()
И если ваша функция принимает аргументы, вы можете просто положить их рядом с вызовом функции: 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. Когда я использую awk, в Solaris, я получаю ошибку ниже. awk: синтаксическая ошибка рядом с строкой 1 awk: спасение возле линии 1 –

0

While вызывая функцию, вам не нужно вызывать имя функции с помощью paratheses(). Заменить строки следующим образом:

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

После удаления Paranthesis он отлично работал. Большое спасибо :) –

Смежные вопросы