【问题标题】:Usage function not working as expected使用功能未按预期工作
【发布时间】:2014-08-13 13:30:54
【问题描述】:

我正在编写一个快速函数来显示一些帮助类型信息,但是无论是否给出参数,它都会运行:

help(){
     if [ $# -eq 0 ] ; then
     echo ''
     echo '########################################################'
     echo ''
     echo 'Argument to run run name must be given: ./report.sh Name'
     echo ''
     echo 'Name can be:'
     echo ''
     ALLNAMES=$(awk -F'|' '{print $1}' $CONFIGFILE)
     echo "$ALLNAMES"
     echo ''
     echo '########################################################'
     echo ''
     exit 1
     fi

}

从我目前的研究来看,条件语句是正确的,我只是传递如下参数:

scriptname.sh 参数1

无论是否给出参数,都会给出相同的结果。

【问题讨论】:

  • 因为这看起来像一个函数,$# 指的是传递给函数的参数数量,而不是脚本

标签: bash function command-line-arguments conditional-statements


【解决方案1】:

您也忘记将参数传递给函数,或者可能调用了函数:

help "$@"

另外请注意,最好为您的函数使用不同的名称,因为 help 已用于内置函数。

【讨论】:

    猜你喜欢
    • 2013-08-29
    • 2020-04-28
    • 2021-08-27
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多