簡體   English   中英

bash環境變量$中的字符是什么意思?

[英]What do the characters in the bash environment variable $- mean?

我一直在查看一些隨各種Linux發行版一起提供的.bashrc和.profile腳本,並且看到有時他們檢查$-

這是Ubuntu中的一個

case $- in
    *i*) ;;
    *) return;;
esac

在這種情況下,它檢查“i”標志是否存在以查看當前shell是否是交互式shell。

我當前的會議給了我這個:

# echo $-
himBH

其他標志/選項是什么意思? 某處有完整的清單嗎?

來自man bash

-

擴展為調用時指定的當前選項標志, set builtin命令或shell本身設置的那些(例如-i選項)。

所以這些是控制shell行為的當前選項。 特別是:

  • h :在$PATH緩存二進制文件的位置。 加快執行速度,但如果在shell會話期間移動二進制文件,則會失敗。
  • i :當前的shell是交互式的
  • m :啟用作業控制
  • B :啟用支撐擴展
  • H歷史替代就像!-1

他們的意思是各種各樣 每個字母對應一個為bash設置的選項。 例如,“i”表示shell是交互式的(因此您提供的代碼示例是測試它是否是交互式shell)。

bash手冊頁中提供了完整列表。 尋找“設置” - 這是第一行:

set [+abefhkmnptuvxBCEHPT] [+o option-name] [arg ...]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM