ターミナルでは、以前のコマンドを参照する!!
を使用できます。
エイリアスでこれを使用することは可能ですか?試しましたが、二重感嘆符が文字通りに解釈されます。
私が可能にしたいのは:
スクリプトを使用した解決策もありますが、これも受け入れられます。
最後に実行されたコマンドをリストするコマンドはfc -nl -1
です。出力置換を使用して、同じコンテンツにさらにパラメーターを追加できます
$> ls /etc/passwd
/etc/passwd
$> $(fc -nl -1) /etc/group
/etc/group /etc/passwd
$>
ただし、このアプローチでは引用が問題になる場合があります
fc
の非常に便利な機能は、fc
コマンドを単独で実行すると、FCEDIT
変数で指定されたテキストエディターを開くことです(おそらく~/.bashrc
に保存する)行の内容は最後のコマンドになります。簡単にするために、テキストエディターとしてnano
を使用することをお勧めしますが、vim
を知っている場合はさらに良いでしょう。
たとえば、qdbus org.ayatana.bamf /org/ayatana/bamf/matcher org.ayatana.bamf.matcher.ActiveWindow
の巨大な行を編集する必要がある場合はどうでしょうか?しかし、fc
を使用すると、vim
を開いて/org/ayatana/bamf/matcher
を編集し、保存、終了して実行できます。
!!
は使用できませんが、...
manual から:
Fcコマンドで使用する便利なエイリアスは
r='fc -s'
です。したがって、「r cc」と入力すると、ccで始まる最後のコマンドが実行され、「r」と入力すると最後のコマンドが再実行されます。
fc
(前述)の代わりに!!
履歴展開構文を使用することを主張する場合、方法があります。
デフォルトでは、history
の展開は、非対話型のシェルセッションでは無効になっています。スクリプトで。
スクリプトで履歴展開を有効にするには、最初に関連するシェルオプションを有効にします。
set -o history
set -o histexpand
set -o histexpand
もset -H
と書くことができます。
履歴展開操作!!
はスクリプト内で機能します。