如何在Bash变量中添加带空格的路径

问题描述 投票:10回答: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个回答
10
投票
mount /dev/sda9 "$games"

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


1
投票

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

带双引号的周围变量将阻止参数被分割

printf "'%s'\n" $games

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