如何在.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
。
我怎么解决这个问题?
mount /dev/sda9 "$games"
如上所述,始终引用变量引用。否则,shell会将变量值中的空格混淆为分隔多个值的空格。
当变量包含空格时,变量扩展然后分词将导致许多参数,echo命令将显示所有参数,但其他程序或函数可能以另一种方式处理参数。
带双引号的周围变量将阻止参数被分割
printf "'%s'\n" $games
printf "'%s'\n" "$games"