Quoting

使用路徑變數 cd 到包含空格的路徑

  • March 9, 2019

我有一個文件,其中包含我從我執行的命令.bash_profile列表

source my_cmds

例如:

$cat my_cmds 
scripts=~/scripts

假設 my $HOMEis /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使用此路徑?

請引用您的變數擴展。

如果文件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

引用自:https://unix.stackexchange.com/questions/445937