gpt4 book ai didi

whitespace - 如何转义 bash 别名中的空格?

转载 作者:行者123 更新时间:2023-11-29 08:48:25 26 4
gpt4 key购买 nike

试图在我的 .bashrc 文件中设置一些别名。这个……

export alias umusic="/Volumes/180 gram/Uncompressed/"

...出现以下错误...

-bash: cd: /Volumes/180: No such file or directory

...当我尝试“cd $umusic”时。

我试过各种方法来转义目录名中的空格,但都无济于事。 (180\克、180%20 克、单引号、双引号、无引号。)我意识到最简单的解决方案是将目录重命名为“180gram”,但我想知道如何解决这个特定问题。

我在 Mac 上,如果这有什么不同的话。

最佳答案

您对 export 命令的使用使 umusic 成为环境变量 而不是别名export 命令导出在命令行其余部分命名的环境变量,可选择使用新值。因此它导出一个名为 alias 的环境变量(可能未设置)和一个名为 umusic 的环境变量。

鉴于您正在扩展一个环境变量,shell 会执行以下替换:

cd $umusic
cd /Volumes/180 gram/Uncompressed/

这会生成您收到的错误,因为未引用空格。相反,如果您这样做:

cd "$umusic"

那么展开就是

cd "/Volumes/180 gram/Uncompressed/"

这就是您所期望的。

但是,为此使用环境变量可能仍然有点太多工作,因为您必须引用扩展。相反,试试这个别名:

alias umusic="cd '/Volumes/180 gram/Uncompressed'"

你只需要运行它

$ umusic
$ pwd
/Volumes/180 gram/Uncompressed

关于whitespace - 如何转义 bash 别名中的空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3911080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com