使用路径变量 cd 到包含空格的路径

使用路径变量 cd 到包含空格的路径

.bash_profile我有一个文件,其中包含从我的as运行的命令列表

source my_cmds

例如:

$cat my_cmds 
scripts=~/scripts

假设我$HOME/Users/knayak,当我
cd $scripts在提示符下运行时,它需要我/Users/knayak/scripts

现在,我有一个这种形式的路径(由于某些原因无法重命名),为此我不知道如何设置命令变量以便我可以cd $path使用该变量。

/Users/knayak/Somedir - some name Inc/Tasks

我尝试将所有这些添加到我的my_cmds文件中以设置环境变量tasks

$cat my_cmds 
tasks=~/Somedir - some name Inc/Tasks
tasks="~/Somedir - some name Inc/Tasks"
tasks=~/"Somedir - some name Inc/Tasks"
...

还有更多,包括一些单引号,但当我这样做时,它们似乎都不起作用cd $tasks。大多数都因错误而失败。

cd: "/Users/knayak/Somedir: 没有这样的文件或目录

我需要在表单中设置正确的值tasks=~/<whatever> 才能cd $tasks使用此路径?

答案1

请引用您的变量扩展。

如果文件my_cmds是:

$ cat my_cmds 
tasks=~/"Somedir - some name Inc/Tasks"

该文件./bash_profile包含(以及其他行):

$ cat ~/.bash_profile
[ -f ~/my_cmds ] && . ~/my_cmds
cd "$tasks" && pwd

执行~/.bash_profile会显示:

$ sh ~/.bash_profile
/Users/knayak/Somedir - some name Inc/Tasks

相关内容