如何输入带空格的路径?

Fed*_*ico 57 shell

我有一个主文件,它使用(从主要我做一个源)一个属性文件,其变量指向路径.

属性文件如下所示:

TMP_PATH=/$COMPANY/someProject/tmp
OUTPUT_PATH=/$COMPANY/someProject/output
SOME_PATH=/$COMPANY/someProject/some path
Run Code Online (Sandbox Code Playgroud)

问题是SOME_PATH,我必须使用带空格的路径(我不能改变它).

我尝试用引号转义空白,但到目前为止还没有解决方案.

我编辑了路径,单引号的问题是我$COMPANY在路径中使用另一个变量

Igo*_*bin 73

使用以下三种变体之一:

SOME_PATH="/mnt/someProject/some path"
SOME_PATH='/mnt/someProject/some path'
SOME_PATH=/mnt/someProject/some\ path
Run Code Online (Sandbox Code Playgroud)


Tom*_*rka 39

我看到费德里科你自己找到了解决方案.问题出在两个地方.在您的情况下,分配需要适当的引用

SOME_PATH="/$COMPANY/someProject/some path"
Run Code Online (Sandbox Code Playgroud)

是一种可能的解决方案.

但是在shell中,这些引号不会存储在内存中,因此当您想要使用此变量时,需要再次引用它,例如:

NEW_VAR="$SOME_PATH"
Run Code Online (Sandbox Code Playgroud)

因为如果没有,空间将扩展到命令级别,如下所示:

NEW_VAR=/YourCompany/someProject/some path
Run Code Online (Sandbox Code Playgroud)

这不是你想要的.

有关详细信息,请查看我的文章http://www.cofoh.com/white-shell

  • 这应该被标记为正确的答案.引用变量本身的细节似乎是让人们吵架的主要因素(包括我!) (8认同)
  • 对我有帮助的关键信息是变量定义期间使用的引号不会成为变量值的一部分,因此在使用时必须再次引用变量。 (2认同)

Flo*_*ciu 17

您可以通过在其前面放置\来转义"空格"字符.