この質問では:デフォルトの割り当てファイル記述子3とは何ですか?使用すると/proc/self/fd
逆参照に/proc/32157/fd
なりますかpid
?私はなぜできませんかecho $self
?私は以前それを見たことがありませんself
。
答え1
ツリーは/proc
動的に作成されたオペレーティングシステムウィンドウです。プロセスが を参照すると、/proc/self
カーネルはself
呼び出し元の を使用しますpid
。これにより、プロセス自体がpidクエリを実行するのを防ぐことができますが、すでに知っている/proc/{pid}
場合はpidクエリを実行して同じ情報ノードを取得できますpid
。
Unixの利点の1つは、これらのエントリをすべて/
ルートネームスペースの下に統合して、実際のファイルシステムではなくファイルやディレクトリのように機能させることです。
$self
全く違う概念なのでエコーできませんecho $[varname]
。シェル操作の実行:シェルには状態を維持する「環境変数」があります。これはファイルシステムとは何の関係もありません/proc
。