到目前为止,我见过几种不同的格式:
带引号和括号:
PATH="/usr/local/bin:${PATH}"
仅包含引号:
PATH="/usr/local/bin:$PATH"
没有任何:
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
但由于这个问题与$PATH
shell 变量无关,所以我原来的帖子仍然有效,因为你永远不会打印'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