在學習Linux的時候,今天遇到了$-,什么意思呢?網上搜索了一些帖子:
帖子1:
linux命令 $- 是什么意思
$- 是什么意思?有什么用?可以判斷什么交互式shell?
$-記錄著當前設置的shell選項,himBH是默認值,5個字母分別有各自含義。解釋如下:
-
h:hashall,打開這個選項后,Shell 會將命令所在的路徑記錄下來,避免每次都要查詢。舉例:當h選項開啟時,如果將某個自定義命令從/usr/bin/目錄下移動到/usr/local/bin/,再運行,會提示無此命令。而當通過set +h將h選項關閉后,上述情況就不會出現。
-
i:interactive-comments,包含這個選項說明當前的 shell 是一個交互式的 shell。所謂的交互式shell,就是輸入命令后,shell解釋執行,然后返回一個結果。在腳本中,i選項是關閉的。
-
m:monitor,打開監控模式,就可以通過Job control來控制進程的停止、繼續,后臺或者前臺執行等。
-
B:braceexpand,大括號擴展。舉例如下:
lenovo@lenovo-DK ~
$ ls
A_File
lenovo@lenovo-DK ~
$ cp A_File{,.back_up}
lenovo@lenovo-DK ~
$ ls
A_File A_File.back_up
??????? 如果關閉B選項,那么shell就不會將大括號擴展。
????5.? H:history,Shell 會把我們執行的命令記錄下來,可以通過 history 命令查看,每一行是序號 + 執行的命令,在 shell 退出時,會將這些信息保存到~/.bash_history 文件中。如果H選項打開,就可以展開歷史列表中的命令,可以通過!感嘆號來完成,例如"!!"返回上最近的一個歷史命令,"!n"返回第 n 個歷史命令,等等。
帖子2:
$-是shell的一個特殊變量(其他還有$? $@ $#等),$-表示當前shell中使用set命令設置的參數
你可以通過echo $-來查看當前shell的參數,我這里輸出了:himBHs
要了解每個的具體含義,可以輸入set --help來查看。
注意:set -h不行,一般程序-h和--help是一個意思,但是這個set不是
帖子3:
`$-` prints The current set of options in your current shell.
`himBH` means following options are enabled:
- `H` - `histexpand`
- `m` - `monitor`
- `h` - `hashall`
- `B` - `braceexpand`
- `i` - `interactive`