cd para um caminho contendo espaços usando uma variável de caminho [duplicado]

1

Eu tenho um arquivo contendo uma lista de comandos que eu executo do meu .bash_profile as

source my_cmds

Por exemplo:

$cat my_cmds 
scripts=~/scripts

assumindo meu $HOME é /Users/knayak , quando executo cd $scripts no prompt, ele me leva para /Users/knayak/scripts

Agora, eu tenho um caminho neste formulário (que não pode ser renomeado por alguns motivos), para o qual eu não sei como definir uma variável de comando para que eu possa cd $path usando essa variável.

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

Eu tentei adicionar tudo isso no meu arquivo my_cmds para definir uma variável de ambiente tasks ,

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

e muitos mais, incluindo aspas simples em alguns, mas nenhum deles parece funcionar quando eu faço cd $tasks . A maioria deles falha com o erro.

cd: "/Users/knayak/Somedir: No such file or directory

Você poderia me ajudar a definir o valor adequado no formulário tasks=~/<whatever> para cd $tasks trabalhar com esse caminho?

    
por Kaushik Nayak 25.05.2018 / 10:03

1 resposta

3

Por favor, cite suas expansões variáveis.

Se o arquivo my_cmds for:

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

E o arquivo ./bash_profile contém (entre outras linhas):

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

A execução de ~ / .bash_profile mostrará:

$ sh ~/.bash_profile
/Users/knayak/Somedir - some name Inc/Tasks
    
por 25.05.2018 / 10:35