WSL bash,为每个可用的 Windows 驱动器创建别名

WSL bash, create aliases for each available Windows drive

对于我的 WSL 设置,在我的 .bashrc 中,我有以下内容:

[ -d /mnt/c ] && alias llc='cd /mnt/c && ll'
[ -d /mnt/d ] && alias lld='cd /mnt/d && ll'
[ -d /mnt/e ] && alias lle='cd /mnt/e && ll'

快速跳转到每个 Windows 驱动器很好,但是是否可以使这个通用化,以便它尝试为它看到的从 c 到 z 的任何驱动器号创建这样的别名启动?例如类似于:

# this is not real code:
for i in [a-z]; do
    [ -d /mnt/$(i) ] && alias ll$(i)='cd /mnt/$(i) && ll'
done

你的伪代码很接近。您只需要自己遍历 globbed 目录,正如评论中指出的那样,使用双引号允许变量插值:

for d in /mnt/[a-z]
do
  alias "ll$(basename ${d})"="cd $d && ll"
done

在第一遍中,$d=/mnt/a$(basename ${d})a,依此类推。