.bash_profile 的不同路径格式

.bash_profile 的不同路径格式

到目前为止,我见过几种不同的格式:

  1. 带引号和括号:

    PATH="/usr/local/bin:${PATH}"
    
  2. 仅包含引号:

    PATH="/usr/local/bin:$PATH"
    
  3. 没有任何:

    PATH=/usr/local/bin:$PATH
    

导出全部相同:

export PATH

哪个是正确/首选的方法?

答案1

这是关于一般的 shell 变量,而不仅仅是 PATH。

以下是一些示例,说明原因""以及{}可以减少错误。

把它放在引号中更安全:如果你这样做,a=hello world那么你将不会得到你所期望的,但a="hello world"你会得到。

使用{}也更安全:做h="hello"; echo "$hword"不会起作用,但h="hello"; echo "${h}word"会起作用。

答案2

它们都很有效。一个并不比另一个好得多,但我更喜欢:

export PATH=$PATH:/usr/local/bin

它在一行中负责导出和路径设置。我也倾向于不将新路径放在现有路径之前$PATH,但在某些情况下,可能需要在旧系统库之前加载较新的自编译库。


如果您尝试导出变量,那么是的,您想要引用它们,例如:

export myservers="server1 server2 server3"

现在你echo $myservers会看到:

[user]# echo $myservers
server1 server2 server3

但由于这个问题与$PATHshell 变量无关,所以我原来的帖子仍然有效,因为你永远不会打印'hello world'到系统路径中。

[user]# echo $PATH  ## Something you shouldn't be doing
/usr/local/bin:HELLO WORLD/sbin:/bin:/usr/sbin:WHY AM I DOING THIS?/usr/bin:/root/bin

相关内容