Environment-Variables
環境變數開頭的路徑分隔符有什麼作用?
我正在閱讀建議設置變數的文件
TZ
,以避免stat
在使用的程序中進行不必要的系統呼叫localtime
,它使用以下語法:TZ=:/etc/localtime
文件中描述的技巧有效,但在沒有冒號的情況下也有效:
TZ=/etc/localtime
.這裡的目的可能是什麼
:
?
TZ
事實證明這是變數的特殊之處。該行為記錄在man tzset
(強調我的):第二種格式指定應從文件中讀取時區資訊:
:[filespec]
如果省略了文件規範 filespec,或者無法解釋其值,則使用協調世界時 (UTC)。如果給出了 filespec,它會指定另一個 tzfile(5) 格式的文件來讀取時區資訊。如果 filespec 不以“/”開頭,則文件規範是相對於系統時區目錄的。 如果省略冒號,則將嘗試上述每種 TZ 格式。
這是一個例子,再一次在紐西蘭:
TZ=":Pacific/Auckland"
如果我對上述內容的理解正確,則兩者都
TZ=:/etc/localtime
可以TZ=/etc/localtime
按照您所說的那樣工作,但是當:
省略時,系統將嘗試將您提供的內容解析為它接受的任何各種格式。我認為這包括實際時間定義(請參閱同一手冊頁中的進一步內容)。因此,使用
:
是一種告訴tzset
不要費心去解釋你給它的東西,而是直接把它當作一個文件來對待的方式。