echo没有正确回显值 - 没有双引号的BASH Linux

时间:2014-07-24 16:28:58

标签: linux bash variables echo double-quotes

有人可以指出我在这里可以做什么吗? PS :重新启动新的shell /会话不会重新创建此问题。

[trinley@linuxserversb12 2]$ echo $gradle_HOME
/home/gradle/gradle- .6
[trinley@linuxserversb12 2]$ echo "$gradle_HOME"
/home/gradle/gradle-1.6

[trinley@linuxserversb12 2]$ echo $gradle_HOME; cd $_
/home/gradle/gradle- .6
-bash: cd: .6: No such file or directory

[trinley@linuxserversb12 2]$ echo "$gradle_HOME"; cd $_
/home/gradle/gradle-1.6
-bash: cd: /home/gradle/gradle-: No such file or directory

[trinley@linuxserversb12 2]$ echo "$gradle_HOME"; cd "$_"
/home/gradle/gradle-1.6

[trinley@linuxserversb12 gradle-1.6]$ pwd
/home/gradle/gradle-1.6

[trinley@linuxserversb12 gradle-1.6]$ echo $gradle_HOME; cd "$_"
/home/gradle/gradle- .6
-bash: cd: .6: No such file or directory

2 个答案:

答案 0 :(得分:6)

您的IFS变量已设置为1或包含该变量的内容。这会导致单词拆分为包含1作为分隔符的变量。

使用IFS=$' \t\n'将其重新设置。

答案 1 :(得分:0)

设置IFS =“”解决了这个问题。除了换行符'\ 012'

之外,它没有设置为1或其他任何内容

IFS设置为换行符,即

[trinley@linuxserversb12 gradle-1.6]$ echo $IFS - "'$IFS'"
    - '\012'

设置回到单个空间,解决了问题。

export IFS=" "
$ echo $GRADLE_HOME; cd $_; echo; pwd
/home/gradle/gradle-1.6

/home/gradle/gradle-1.6
$