私は読んでいたLPIC-1学習ガイド。
echo "This is a sentence. " !#:* !#:1->text3
echo
上記のコード行がどのようにコマンドを何度も繰り返すことができるかはわかりません。記録機能を使用していることを知っていますが、またはに関する文書がbash
見つかりません。誰かが私にこれを説明できますか?!#:*
!#:1
ベストアンサー1
はい、これは履歴を使用することです。
!#
は歴史的出来事指標
これまでに入力したコマンドライン全体を意味します。
:*
は、ゼロ番目の単語を除くすべての単語を指す単語(範囲)表示です。したがって、 を入力すると拡張さecho "This is a sentence. "
れます。そして(これは!#:*
"This is a sentence. "
x-y
Xそしてワイは整数)は、単語数を表す単語(範囲)表示です。X単語水路ワイ。もしワイ(x-
)を省略すると、単語数を表すものと解釈されます。X2番目の言葉で。だから「今まで入力した完全なコマンドライン」以降
echo "This is a sentence. " "This is a sentence. "
これ!#:1-
で拡張されます"This is a sentence. "
。引用符付きの各"This is a sentence. "
文字列は単語として計算されるため(単語番号1のみ)!#:1-
と同じです。!#:1
だからあなたは結局
echo "This is a sentence. " "This is a sentence. " "This is a sentence. " >text3
-
コマンドにtheとtheが一緒に表示されるという事実は、>
混乱の問題にすぎません。そして「これは文章だ」という事実。引用すると、何が起こっているのか曖昧になります。
echo This is a sentence. !#:* !#:1-
次に拡張される予定です。
echo This is a sentence. This is a sentence. !#:1-
だから
echo This is a sentence. This is a sentence. This is a sentence. This is a
(!#:1-
単語1から最後から2番目の単語まで拡張されるからです。)