Ion*_*zău 9 command-line shell bash alias
假设我想以ls这种方式修改工具的原始行为:
$ ls
Hello World
file1 file2 ...
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
运行时ls我想运行另一个命令让我们说echo "Hello World!"。
我看到的快速解决方案是使用别名:
alias orig_ls="ls"
alias ls='echo "Hello World!"'
Run Code Online (Sandbox Code Playgroud)
然而,这不是一个真正的解决方案,因为当我运行orig_ls它时会输出"Hello World!".
und*_*ail 12
有时别名不够强大,无法轻松完成您想要的操作,因此这里有一种不使用它们的方法。
在 shell 启动时获取的某些文件中(例如.bashrc),添加以下函数:
ls () {
echo "Hello world!"
command ls "$@"
}
Run Code Online (Sandbox Code Playgroud)
与别名不同,函数可以递归。这就是为什么command ls使用ls;而不是; 它告诉你的 shell 使用实际的ls而不是你刚刚定义的函数。
你一定不要忘记打电话ls:
alias ls='echo "Hello World!"; ls'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1062 次 |
| 最近记录: |