このコマンドが次の出力を提供するのはなぜですか?
$ echo !#
echo echo
echo
$
私は「!」について読んで、それが状況に応じてどのように歴史を否定または拡張するかを読んだ。 #と接続すると、なぜこのように動作するのかわかりません。
答え1
実行すると、echo !#
「bashは現在!#があるコマンドライン全体を変更できますか?(!#自体は含まれていません)」と言います。
その後、Bashは代替結果をstderrとして印刷します。これはあなたが見ることができるものです。その後、出力の次の行はecho echo
stdoutの作業結果です。echo echo
echo
詳細はイベントインジケータのセクションにあります。バッシュマンページ。
!#
コマンドラインを繰り返すための特別なイベントインジケータだけです。
より明確な例です。
echo "There's two of us!";!#
結果:
echo "There's two of us!";echo "There's two of us!";
There's two of us!
There's two of us!