意外标记`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
任何建议都会有帮助!
答
当你想调用在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后,它工作正常。非常感谢 :) –
使用函数时,您不/不能使用'()'s。只需传递所需的任何参数,即“myFn arg1”arg 2“arg3”。祝你好运。 – shellter
删除Paranthesis后,它工作正常。非常感谢:) –