
我想檢查我目前的 shell 啟用了哪些選項。例如,我想知道是否使用-x
或-e
或任意數量的其他選項呼叫了我。
我source
使用 shebang 行編寫了一個 shell 腳本,然後嘗試在腳本末尾#!/bin/bash -x
使用 a 關閉“x” 。set +x
現在我想檢查我的set +x
線路是否成功。
嘗試的解決方案
我已經發現printenv
並set
作為檢查有關當前 shell 的一些資訊的方法,但它們似乎都不包含存儲x
e
等的變數。
答案1
它在$-
變數中。
請參閱set
命令的文檔-- 向下捲動到末尾,您將看到「目前的選項集可能位於 中$-
」。
快速演示
$ bash
$ echo $-
himBH
$ set -f; set +H
$ echo $-
fhimB
$ [[ $- == *i* ]] && echo This is an interactive shell
This is an interactive shell
答案2
還有$BASHOPTS
和$SHELLOPTS
。