history
私はサブシェルには何も出力されないことに気づきました。行数を数えてこれを見せようとしています。まず、echoを完全な検査として使用します。
$ echo a | wc -l
1
...そしてサブシェルから:
bash -c 'echo a' | wc -l
1
実際には、どちらの場合も単一の出力ラインを期待しています。今はhistory
:
$ history | wc -l
681
...しかし、サブシェルでは次のようになります。
$ bash -c 'history' | wc -l
0
...history
行を返しません。
history
なぜこれが起こるのですか?サブシェルから現在のシェル(最後のセッションコマンドを含む)の履歴をどのように印刷しますか?
答え1
-c
一つも作らないでくださいサブシェル;単純に新しい非対話型シェル(または現在のシェルとは独立した別のプロセスで非対話型実行環境)を作成します。そして:非対話型シェルでは、このhistory
コマンドは意図的に機能しません。