环境变量问题

环境变量问题

我尝试创建一个快捷方式,以便轻松切换到我的某些 Windows 分区。挂载它们后,有些可以正常工作,有些则不行。以下是发生的情况。

我的~/.bash_aliases包含:

export geo=/media/geo/Novo\ volume/Geo
export windows=/media/geo/OS/Users/Geo

当我在终端输入

geo@george-Ubuntu:~$ cd $windows
geo@george-Ubuntu:/media/geo/OS/Users/Geo$ 

它按预期工作。

但是,当我尝试时:

geo@george-Ubuntu:/media/geo/OS/Users/Geo$ cd $geo
bash: cd: /media/geo/Novo: No such file or directory

找不到目录(确保“Novo Volume”已安装并且目录存在)

我怎样才能解决这个问题?符号链接:没有这样的文件或目录对我没有帮助。

答案1

你看:

bash: cd: /media/geo/Novo: No such file or directory

由于您尝试为文件夹设置一个变量"/media/geo/Novo volume/Geo"(带有空格),并且错误是关于仅到空格为止的路径的第一部分您会看到,空格被错误地视为分隔符。

如果你想使用

cd $geo

您可能必须在字符串中包含引号:

export geo='"/media/geo/Novo volume/Geo"'

这不是一个好的解决方案,更好的方法是在您的.bash_aliases示例中设置一个别名:

alias cd-geo='cd "/media/geo/Novo volume/Geo"'
alias cd-windows='cd /media/geo/OS/Users/Geo'

答案2

您需要做的就是引用该变量,因为它包含一个空格字符。

cd "$geo"

在 shell 代码中,引用可能包含空格的变量始终是一种好的做法。

答案3

被盗这个问题如果你这么做,cd "$geo"我敢打赌你会得到正确的结果

话虽如此,尝试做

alias geo="cd /media/geo/OS/Users/Geo"然后只需使用geo(作为命令)即可到达那里。

相关内容