假设我在 Bash 中有一个函数:
function ll {
command ls -l $*
}
所以它是使ll
作品像ls -l
。大多数情况下,它会起作用,但是
ls -l "ha ha"
可以使用 name 的文件ha ha
,但是
ll "ha ha"
会失败,因为它被认为是
ls -l ha ha
有没有办法使这项工作?我想我们可以做到的
function ll {
command ls -l "$@"
}
(注意"$@"
不同于"$*"
,"$@"
表示单独引用,而"$*"
表示全部引用在一个字符串中)
但是,ll -t "ha ha"
会变成ls -l "-t" "ha ha"
,它确实有效,但有点奇怪,我不确定它是否会在某些情况下崩溃。
有没有另一种方法让它工作,另一件事是,我认为在功能上,command ls -l "$@"
是ls -l "$@"
一样的吗?(command
只是直接运行程序而不调用任何可能的bash函数来防止递归发生吗?)