如何将默认参数添加到 `Bash` 函数?
How can I add a default parameter to a `Bash` function?
大多数时候,当我在某个目录中并 运行 从命令行执行某些工作时,我喜欢这样做:
ls -ltr | tail -3
确认我期待的文件确实存在。
为了避免输入太频繁,我添加到我的 ~/.bach_profile
:
alias ltr="ls -ltr | tail -3"
Bash
doesn't accept
参数,但我们可以写
ltr() {
ls -ltr "" | tail -3
}
在(比如说)下载了一些东西之后,这使得输入 ltr ~/Downloads
.
成为可能
但我不能再只输入 ltr
。我现在必须输入 ltr .
.
如何向 Bash
函数添加默认参数?
(我在 macOS 终端中,以防有所不同。)
您可以像这样使用默认参数值:
ltr() {
ls -ltr "${1:-.}" | tail -3
}
如果缺少 </code>,它将使用 <code>.
作为 ls -ltr
的参数。
有了这个你可以这样使用:
ltr ~/Documents
ltr ~/Downloads
ltr
这并不完全符合您的要求,但在这种情况下,使用它可能会更好:
ltr() {
ls -ltr "$@" | tail -3
}
"$@"
扩展为传递给 ltr
的所有参数,因此您可以传递多个参数...或 none,无论您传递什么,都会传递至 ls -ltr
.
大多数时候,当我在某个目录中并 运行 从命令行执行某些工作时,我喜欢这样做:
ls -ltr | tail -3
确认我期待的文件确实存在。
为了避免输入太频繁,我添加到我的 ~/.bach_profile
:
alias ltr="ls -ltr | tail -3"
Bash
doesn't accept
参数,但我们可以写
ltr() {
ls -ltr "" | tail -3
}
在(比如说)下载了一些东西之后,这使得输入 ltr ~/Downloads
.
但我不能再只输入 ltr
。我现在必须输入 ltr .
.
如何向 Bash
函数添加默认参数?
(我在 macOS 终端中,以防有所不同。)
您可以像这样使用默认参数值:
ltr() {
ls -ltr "${1:-.}" | tail -3
}
如果缺少 </code>,它将使用 <code>.
作为 ls -ltr
的参数。
有了这个你可以这样使用:
ltr ~/Documents
ltr ~/Downloads
ltr
这并不完全符合您的要求,但在这种情况下,使用它可能会更好:
ltr() {
ls -ltr "$@" | tail -3
}
"$@"
扩展为传递给 ltr
的所有参数,因此您可以传递多个参数...或 none,无论您传递什么,都会传递至 ls -ltr
.