タグ付けされた質問 「history-expansion」

5
エイリアスsudo !! `
sudo !!Bashでエイリアスを設定しようとしています。私はalias sbb='sudo !!' を試しましたが、それをリテラルとして解釈し !!、印刷します sudo: !!: command not found 二重引用符を使用すると、文字列自体に二重バングが置換されるため、機能しません。 この作業を行う方法はありますか?または別のエイリアスですか?`

1
$ _ vs!$。前のコマンドと出力リダイレクトの最後の引数
問題は特殊変数に関するものです。ドキュメントは言う: !!:$ 前のコマンドの最後の引数を指定します。これは!$に短縮できます。 ($_、アンダースコア。)シェルの起動時に、環境または引数リストに渡されて実行されるシェルまたはシェルスクリプトを呼び出すために使用される絶対パス名に設定します。その後、展開後、前のコマンドの最後の引数に展開します。また、そのコマンドにエクスポートされた環境で実行および配置された各コマンドの呼び出しに使用されるフルパス名に設定されます。 次の理由により、キャッチできない違いがあるはずです。 $ echo "hello" > /tmp/a.txt $ echo "!$" echo "/tmp/a.txt" /tmp/a.txt $ echo "hello" > /tmp/a.txt $ echo $_ hello 違いはなんですか?

5
Bashで単一の感嘆符を入力するとどうなりますか?
Bashは、この質問に対する回答で説明されているように、履歴の展開に感嘆符を使用します(たとえばsudo !!、前のコマンドラインをで実行しますsudo)。ただし、次のコマンド(つまり、単一の感嘆符)の実行内容を説明する場所は見つかりません。 ! 何も印刷せずに1で終了するように見えますが、なぜそうなるのかわかりません。私はオンラインでBashのマニュアルページを見ましたが、「予約語」であるという事実以外には何も見つかりませんでした}。 } エラーを出力します: bash: syntax error near unexpected token `}'

4
デフォルトでbash履歴置換がまだ有効になっているのはなぜですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 去年閉鎖されました。 なぜbashがデフォルトで履歴置換をまだ有効にしているのか知っていますか?私.bashrcはset +H長年にわたってこの機能を取り入れてきましたが、他の人たちはまだこの機能に噛まれています。 ほぼすべての人がコピーアンドペースト機能を備えた端末を使用しており、readlineライブラリでコンパイルされたbash と履歴の置換が対話型シェルでのみデフォルトで有効になっていることを考えると、この機能を使用する理由は本当にありますか?すべてのシェルでデフォルトで無効になっている場合でも、既存のスクリプトは破損しません。 履歴置換が壊れている理由がわからない場合は、これを試してください。 $ set +H # disable feature history substitution $ echo "WTF???!?!!?" WTF???!?!!? $ set -H # enable feature history substitution $ echo "WTF???!?!!?" echo WTF???echo WTF???!?!!? WTF???echo WTF???!?!!? (それはすべてのスクリプトのために、デフォルトでは無効と機能を実行する前に結果を確認するために存在していた場合、明らかな特徴は、大きな問題がありますshopt -s histverify。) こちらもご覧ください: 感嘆符「!」がbashを混乱させることがあるのはなぜですか? Bashの履歴にこのコマンドが記録されないのはなぜですか? 強打をエコーする方法! Bash:同じ行内の二重引用符の後の単一引用符内の履歴展開

5
変更するために(実行せずに)前のコマンドを呼び出す方法は?
最後のコマンドを実行せずに取得できるトリックを思い出せません。 上矢印キーを押してコマンドを変更するときに!1255コマンドにアクセスできるようにしたいとしましょう。それでは、コマンドを呼び出して、コマンドラインに表示されるが実行されず、その後矢印キーでアクセスできるようにするコツは何ですか? エコーを入れてみましたが、コマンドの前にエコーがあります。正しく行う方法を覚えていません。

2
履歴の最後のコマンドから2番目の引数にアクセスする方法は?
私はいくつかの正規表現を学び始めているので、このコマンドを繰り返し使用します: grep pattern /usr/share/dict/american-english パターンが変わる部分だけなので、長い式「/ usr / share / dict / american-english」を何度も書く必要があります。 誰かが、完全な式の代わりに不可解な文字の組み合わせを入力することにより、コマンド履歴からコマンドの引数を展開することが可能であると発言しました。これらの不可解な文字の組み合わせを教えてください。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.