正確調用我有一個檢查,如果操作系統是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」。 –