「set -ovi」のスペルが間違っていることをキャンセルする方法は?

「set -ovi」のスペルが間違っていることをキャンセルする方法は?

私は処刑したかったのですが、set -o viそうしましたset -ovi

ここで確認すると、set -o次のような奇妙なオプションが追加されます。

$ set -o
set -o
...
update_terminal_cwd; 

結果はupdate_terminal_cwd;各コマンドに出力されます。

シェルを再起動せずにタイプミスをキャンセルできますか?

答え1

これにより、ある効果が別の効果に反転するため、set -ovi繰り返してください。set +ovi

set -o v実際に行うことは、履歴(設定されている場合)も表示する詳細オプションを有効にすることです。

最も重要な値のセットはecho "$-"通常、himBH対話型シェルでのみ印刷されます。

set -oより長い値のリストはまたはで印刷されますset +o。前者は、設定された(オン)または設定されていない(オフ)の値について人が読み取ることができる説明を印刷します。後者は、set状態を復元するために実行できるほぼ完全なリストを印刷します。

詳細な状態を確認するには、set -oまたはリストを使用して次のいずれかのコマンドを使用して設定を解除します。set +o

set +o verbose
set +o v

はい、+設定されていない(オフ)、奇妙です。わかりました。

答え2

set +v

(通常、set -<char>オプションがオンの場合はオフになりますset +<char>。)

答え3

または、次のように違いを確認します(おそらく無謀な仮定である可能性があり、オプションは環境変数のように渡されません)。

set -o > now
bash -ic 'set -o' > default
diff default now

関連情報