"( set -o posix ; set ) | less "は何をしていますか? [コピー]

私はすべてのシェル変数をリストするコマンドを検索している間、すべての環境変数をリストするコマンドがあることに気づきましたが、どういうわけか私が知らない理由ですべてのシェル変数をリストした人はいません。

さて、ここにすべての変数、シェル、環境変数を表示する方法に答えてくれた人がいます。

( set -o posix ; set ) | less

彼は実際にこの表現が何をしているのかを一般の人々に説明しません。

私が知っているのは次のとおりです。

  • (コマンド1、コマンド2)これにより、コマンドはシェルの子プロセス内で実行されます。
  • 置く変数を宣言するいくつかの方法ですが、それが何であるかはわかりません。-o posix第二の意味と理由置く継続的に実行

  • コマンド少ないそれは問題ではありません。私がそれを理解しても、それは出力をより制御するためのポケットベルです。

ベストアンサー1

setすべてのシェル変数を表示します(エクスポートしたかどうか)。 Bashでset -o posixシェルを次に設定します。POSIX互換モード。 (他のシェルにも同様の機能に似た構文があるかどうかはわかりませんが、ここではBashを使用しているとします。)

この場合の違いは、通常、Bashはsetシェル関数も表示しますが、POSIXモードではset変数のみが表示され、出力形式がわずかに変更されることです。

  1. オプションなしでset組み込み関数を呼び出すと、シェル関数名と定義は表示されません。
  2. オプションなしでset組み込み関数を呼び出すと、結果に印刷できない文字が含まれていてもシェルメタ文字が含まれていない場合は、引用符なしの変数値が表示されます。

Bashには次のものもあります。declare組み込みすべての隠し変数またはBash関連の変数を表示するために使用できるフラグ:declare -p xxBashが入力として使用できる形式で変数を表示します。すべての変数を表示し、機能を表示するために使用できます。xxdeclare -pdeclare -f

おすすめ記事