别名解释

xra*_*alf 6 alias

我在.bash_aliases. 我c按如下方式定义了别名,但它不能正常工作:

...
alias cd='cd; ls -r --time=atime'
alias c='cd'
...
Run Code Online (Sandbox Code Playgroud)

.bashrc有一行:

alias ls='clear; ls --color=auto'
Run Code Online (Sandbox Code Playgroud)

命令c现在给出糟糕的输出。它应该提供与 cd; clear; ls -r --time=atime --color=auto.

其他问题:当我打字时cd dir我应该呆在里面,dir$HOME结果我在里面。

如何解决这个问题并改进定义别名?被.bash_aliases解释为regular grammar?

enz*_*tib 9

改用函数,优点是可以传递参数和更清晰的语法。

function cd() {
  command cd "$@"
  ls -r --time=atime
}

function c() {
 cd "$@"
}

function ls() {
  clear
  command ls --color=auto "$@"
}
Run Code Online (Sandbox Code Playgroud)

(commandbash用于引用真实命令的内置命令,而不是具有相同名称的函数)。