如何将名称中带有空格的目录/路径/文件夹分配给 Bash 变量?

问题描述 投票:0回答:2

如何在

.bashrc
的 Bash 变量中添加带有空格的路径?我想在
.bashrc
中存储一些路径变量,但我遇到了一个带有空格的路径。

我尝试将其添加到

' '
之间或使用转义字符
\
,但没有帮助:

games=/run/media/mohamedRadwan/games\ moves    # this doesn't work
games='/run/media/mohamedRadwan/games  moves'  # or this
games="/run/media/mohamedRadwan/games  moves"  # or this

...当我跑步时:

mount $games

...它会抛出一个错误,表明它只是尝试挂载

/run/media/mohamedRadwan/games

但是当我运行

echo $games
时,它显示完整的值,
/run/media/mohamedRadwan/games moves

我该如何解决这个问题?

bash terminal
2个回答
28
投票
mount /dev/sda9 "$games"

如前所述,始终引用变量取消引用。否则,shell 会将变量值中的空格混淆为分隔多个值的空格。


5
投票

当变量包含空格时,变量扩展然后分词将导致许多参数,echo 命令将显示所有参数,但其他程序或函数可能会以另一种方式处理参数。

用双引号包围变量将防止参数被拆分

printf "'%s'\n" $games

printf "'%s'\n" "$games"
© www.soinside.com 2019 - 2024. All rights reserved.