在意外令牌'else'附近出现Bash语法错误

时间:2016-07-27 11:57:51

标签: shell

我在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

任何建议都会有所帮助!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

在调用函数时,您不需要使用paratheses()调用函数名。 替换行如下:

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