在我的.bash_profile
中,我得到了:dl="/Users/gary/Downloads
。当我去终端并输入cd $dl
时,它会按照预期进入目录。
但是当我在.bash_profile
中有以下行时:
applib="/Users/gary/Library/Application Support"
我键入cd $applib
然后由于路径中的空格而无效。
我知道cd "$applib"
确实有效,但是有没有办法让它成为我不需要引号?否则,我必须记住我的哪个路径变量需要引号,哪些不需要,例如。
答案 0 :(得分:4)
在分词前扩展变量。除了引用之外没有其他方法可以保留空格。见man bash
:
扩展的顺序是:大括号扩展,波浪扩展,参数,变量和算术扩展以及命令替换(以从左到右的方式完成),单词拆分和路径名扩展。
不要记住何时使用引号,而是始终使用它们。它们不会损坏没有空格的值。
答案 1 :(得分:2)
使用引号;这就是他们的目标。你不需要记住哪些路径需要引用,哪些路径不需要引用;只是始终如一地使用它们:
cd "$dl"
cd "$applib"