亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Linux環境變量名中允許的字符

Linux環境變量名中允許的字符

慕哥9229398 2019-08-27 16:45:40
Linux環境變量名中允許的字符Linux環境變量名稱中允許哪些字符?我粗略地搜索手冊頁和網頁只會產生有關如何使用變量的信息,但不會產生允許使用哪些名稱的信息。我有一個Java程序,需要一個包含點的已定義環境變量,如com.example.fancyproperty。使用Windows我可以設置該變量,但我沒有運氣在linux中設置它(在SuSE和Ubuntu中嘗試過)。這個變量名是否允許?
查看完整描述

3 回答

?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

來自公開組:

這些字符串的格式為name = value; 名稱不得包含字符'='。對于可在符合IEEE Std 1003.1-2001的系統中移植的值,該值應由便攜式字符集中的字符組成(NUL除外,如下所示)。

所以名稱可以包含除=和NUL之外的任何字符,但是:

IEEE Std 1003.1-2001的Shell和Utilities卷中的實用程序使用的環境變量名稱僅由大寫字母,數字和便攜式字符集中定義的字符的“_”(下劃線)組成,并且不以數字開頭。實現可以允許其他字符; 申請應容忍此類名稱的存在。

因此,盡管名稱可能有效,但您的shell可能不支持除字母,數字和下劃線之外的任何內容。


查看完整回答
反對 回復 2019-08-27
?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

上殼部分的POSIX標準 IEEE標準1003.1-2008 / IEEE POSIX P1003.2 / ISO 9945.2 殼牌和工具標準沒有定義的變量名詞法約定,但粗略 看看源揭示它使用類似的東西

[a-zA-Z_]+[a-zA-Z0-9_]*

(編輯:在第二個字符類中添加了缺少的下劃線。)

快速說明,因為有些shell不支持正則表達式中的+,可能更具可移植性的正則表達式可能是:

[a-zA-Z_]{1,}[a-zA-Z0-9_]{0,}


查看完整回答
反對 回復 2019-08-27
?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

我的快速測試顯示它們基本上遵循與C變量名稱相同的規則,即

  1. az,AZ _和0-9

  2. 不能以數字開頭

所以這不包括.在他們內心。任何非法變量名稱都被記入unknown command。

這是在ZSH中測試的,ZSH主要與BASH兼容。


查看完整回答
反對 回復 2019-08-27
  • 3 回答
  • 0 關注
  • 1293 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號