BBa*_*les 20 linux bash alias bashrc bash-alias
我的.bashrc文件包含一行这样的效果:
alias prog="/path/to/script.sh $(find $(pwd) -name prog)"
Run Code Online (Sandbox Code Playgroud)
当我注释掉这一行时,当我打开一个新终端时,Bash 几乎立即启动。有了这条线,在我的光标出现之前有 4-5 秒的延迟。
删除嵌套命令$(pwd)等也会再次加快速度。为什么会这样?我还能以某种方式使用嵌套命令吗?
Joh*_*024 47
由于命令替换位于双引号内,因此在定义命令时对其进行评估。这会导致find在运行时查看您的硬盘内容.bashrc。
相比之下,您似乎希望在使用时对其进行评估。在这种情况下,请使用单引号:
alias prog='/path/to/script.sh $(find "$(pwd)" -name prog)'
Run Code Online (Sandbox Code Playgroud)
请注意,如果找到的任何文件的名称中有空格,则此别名将失败。为避免这种情况:
alias prog='find . -name prog -exec /path/to/script.sh {} +'
Run Code Online (Sandbox Code Playgroud)
后一种形式对于任何类型的文件名都可以可靠地工作。
| 归档时间: |
|
| 查看次数: |
8234 次 |
| 最近记录: |