假设我在 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函数来防止递归发生吗?)