$ HOME vs~用于bash脚本

zen*_*zen 6 bash

$ HOME vs~用于bash脚本

我想让我的代码更加一致.我应该用吗?

export export_location=~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

要么

export path_bash="$HOME/root/config/bash/"
Run Code Online (Sandbox Code Playgroud)

两者似乎工作正常,但最好,所以我可以使我的代码库保持一致

Mar*_*c B 7

~ 在字符串中没有特殊含义,它只是一个波浪形的字符:

$ echo ~
/home/marc
$ echo "~"
~
Run Code Online (Sandbox Code Playgroud)

这就是$HOME进入的地方,可以在字符串中使用并扩展到用户的主目录

$ echo $HOME
/home/marc
$ echo "$HOME"
/home/marc
Run Code Online (Sandbox Code Playgroud)

  • “两者似乎都工作正常,但哪个最好......”。您是唯一一个谈论带引号和不带引号的波形符之间的区别的人。 (2认同)

cda*_*rke 6

波浪号~由 , 的内容替换$HOME,但仅当它没有被引用时。

你的例子是苹果和橘子,你应该比较的是:

export path_bash="~/root/config/bash/"
export path_bash="$HOME/root/config/bash/"
Run Code Online (Sandbox Code Playgroud)

现在它们很相似,可以比较。第一个不会扩展。如果您需要其他需要引号的扩展,例如另一个变量或空格,这是一个问题。

作为一般原则,代码应该易于阅读,并且$HOME比 a 更明显~,尽管这是主观的。

  • @nabeel 不,不能。波形符扩展发生在参数扩展之前。 (2认同)