正确调用我有一个检查,如果操作系统是Linux或Mac此bash的代码,我用从其它函数调用的函数isWhat。功能是不是在bash
function isWhat
{
if [ `uname` == $1 ];
then
return 1
else
return 0
fi
}
function isLinux
{
return isWhat("Linux")
}
function isMac
{
return isWhat("Darwin")
}
但是,我得到了这些错误:
/functions.sh: line 13: syntax error near unexpected token `('
/functions.sh: line 13: ` return isWhat("Linux")'
runme.sh: line 7: isMac: command not found
可能是什么问题?
另外,根本不要使用'function'关键字;它使您的脚本与POSIX sh不兼容,原因不明。 'isWhat(){'足以启动一个函数,并且使用该形式保持与纯POSIX shell的兼容性。 –
顺便说一句,你在这里也有其他的错误 - 你在扩展周围缺少引号(这是一个“真正的”错误,即使你唯一的目标是bash),并且==不能保证通过POSIX标准(标准化的字符串比较运算符是'=',而不是'==')在'[]'内部工作。尝试通过运行http://shellcheck.net/来自动检查引用错误。 –
......作为一个实践问题,如果你正在编写一些东西作为包含文件并使用bash-only语法,请将其命名为“.bash”,而不是“.sh”。 –