在bash中调用自定义函数导致"未找到命令"

时间:2016-08-23 13:44:03

标签: bash function

我在尝试执行脚本时没有给出参数时显示默认的帮助文本:

if [[ $@ ]]; then 
    do stuff
else displayHelp; 
fi

displayHelp() {
    echo "some helptext"
}

但出于某种原因,在控制台上执行脚本时,它说:

./myScript.sh: Line 48: displayHelp: Command not found

当我通过-h参数

调用此函数时,会发生同样的情况

1 个答案:

答案 0 :(得分:7)

必须先定义函数才能使用它们。所以在调用之前先把方法放进去:

displayHelp() {
    echo "some helptext"
}

if [[ $@ ]]; then 
    do stuff
else displayHelp; 
fi

或将您的主代码放在另一个方法中,并在脚本的末尾调用它:

main() {
    if [[ $@ ]]; then 
        do stuff
    else displayHelp; 
    fi
}

displayHelp() {
    echo "some helptext"
}

main "$@"