代码之家  ›  专栏  ›  技术社区  ›  Yuval Karmi

如何在UNIX中指定默认参数?

  •  0
  • Yuval Karmi  · 技术社区  · 14 年前

    说我有这个功能 .profile 文件。 当我跑步时 shoutout 'Hello' ,函数打印出来 Hello ,这是预期的响应。不过,我想打个电话 shoutout 无参数,功能打印输出 Foobar .

    如何为$1指定一个有变量或无变量的默认值?谢谢!

    shoutout() {
        echo $1
    }
    
    2 回复  |  直到 14 年前
        1
  •  7
  •   Marcelo Cantos    14 年前
    shoutout() {
        echo ${1:-Foobar}
    }
    

    编辑:感谢@ephemient为我不知道的这个额外的tid位…

    为了避免将空字符串参数混淆为缺少的参数,请省略冒号( : ):

    shoutout() {
        echo ${1-Foobar}
    }
    
    $ shoutout
    Foobar
    $ shoutout ""
    
    $
    
        2
  •  0
  •   Chris Morgan    14 年前
    shoutout() {
        if [ $# -eq 0 ]; then
            echo No arguments.
        else
            echo $1
        fi
    }