cdn*_*zip 1 shell bash alias quoting command-substitution
我试图定义一个别名来帮助我 cd 到最近创建的目录,并且我在 .bashrc 中使用以下内容:
alias cdlatest="latestdir=$(ls -td -- */|head -n 1); cd $latestdir"
Run Code Online (Sandbox Code Playgroud)
但这个别名只能使用一次。如果我更改为新目录,它仍会尝试 cd 到最后一个目录。看来是因为该变量$(ls -td -- */|head -n 1)从一开始就只计算一次。如何解决这个问题?
小智 5
将别名定义周围的双引号更改为单引号,然后就可以了。
alias cdlatest='latestdir=$(ls -td -- */|head -n 1); cd $latestdir'
Run Code Online (Sandbox Code Playgroud)
不过,我建议进行一些精简:
alias cdlatest='cd "$(\ls -td -- */|head -n 1)"'
Run Code Online (Sandbox Code Playgroud)
我们去掉中间变量“$latestdir”,引用命令评估的结果 $(...),并使用 ls 的非别名形式。
但您需要记住,这不会处理名称中带有换行符的文件。
| 归档时间: |
|
| 查看次数: |
1032 次 |
| 最近记录: |