バッシュレコードをエコーし​​てリダイレクトしましょう!ファイルのコマンド

バッシュレコードをエコーし​​てリダイレクトしましょう!ファイルのコマンド

!コマンドで履歴コマンドをスクリプトファイルにエコーしてリダイレクトできますか?私は無視したpipe、またはコマンドに変更がありますかredirecttee

  518  xmodmap -e "keycode 66 = Return"
  519  xmodmap -e "keycode 23 = Tab"
  535  xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'

[Tech_Ministry@localhost ~]$ echo !535 && !518 >> xmodmap_-e.sh 
echo xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape' && xmodmap -e "keycode 66 = Return" >> xmodmap_-e.sh 
xmodmap -e clear Lock -e keycode 0x42 = Escape

この記事を読んだ後郵便はがき頑張ったecho !535:p && !518:p >> xmodmap_-e.sh

何か簡単なものが抜けたようですが…これは可能でしょうか?各コマンドを別々の行に表示できますか?

ベストアンサー1

からhelp history

  -p    perform history expansion on each ARG and display the result
    without storing it in the history list

たとえば、私が主にすることは、history -p \!572 >> myfile履歴にコマンド572を保存することです。

あなたの例では、以下を使用します。

echo "$(history -p '!535') && $(history -p '!518')" >> xmodmap_-e.sh

history単一のコマンドを使用してこれを行う方法があります。

(これにより、スクリプトファイルの1行に2つのコマンドが&&演算子に関連付けられて配置されます。)


更新:この記事を書いて、私が探しているより簡単な形式は次のとおりです。

history -p \!535 \!518 >> whatever.sh

おすすめ記事