微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何向`Bash` 函数添加默认参数?

如何解决如何向`Bash` 函数添加默认参数?

大多数时候,当我在某个目录中并从命令行运行某个作业时,我喜欢这样做:

ls -ltr | tail -3

确认我期望的文件确实存在。

为了避免输入太频繁,我在 ~/.bach_profile添加

alias ltr="ls -ltr | tail -3"

Bash doesn't accept 参数,但我们可以写

ltr() {
    ls -ltr "${1}" | tail -3
}

在(说)下载一些东西之后,这使得输入 ltr ~/Downloads 成为可能。

但我不能再只输入 ltr。我现在必须输入 ltr .

如何向 Bash 函数添加认参数?

(我在 macOS 终端中,以防万一。)

解决方法

您可以像这样使用默认参数值:

ltr() {
   ls -ltr "${1:-.}" | tail -3
}

如果缺少 .,它将使用 ls -ltr 作为 $1 的参数。

有了这个,你可以像这样使用:

ltr ~/Documents
ltr ~/Downloads
ltr

Please read this about parsing the output of ls

,

这并不完全符合您的要求,但在这种情况下,最好使用它:

ltr() {
    ls -ltr "$@" | tail -3
}

"$@" 扩展为传递给 ltr 的所有参数,因此您可以传递多个参数...或根本不传递,并且您传递的任何参数都会传递给 ls -ltr .

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。