リンクコマンドを含む関数を.bashrcのエイリアスに割り当てる正しい方法は何ですか?

リンクコマンドを含む関数を.bashrcのエイリアスに割り当てる正しい方法は何ですか?

エイリアスを次のように呼び出したいと思います。

alias_name arg0 arg1 arg2
  • arg0=ファイル名
  • arg1 = 一般的な文字列
  • arg2=最後のコマンドの文字列表現

目的は、エイリアスを呼び出し、arg0、arg1、およびarg2を渡して、最後のコマンドの出力をファイルに追加する関数を呼び出すことです。ファイルがすでに存在する場合、またはファイルが存在しない場合は作成する必要があります。それを挿入し、最後のコマンドの出力を挿入します。

注:私の意図は、ファイル形式が次のとおりです。

String 1  

Command 1 

Output of command 1


String i

command i

Output of command i


String N

Command N

Output of command N

私は.bashrcでこれを達成しようとしています。

alias alias_name='function_name(){ printf "\n\nString_i: $1" >> $0 ; printf "\nCommand_i: $2" >> $0; printf "\nOutput_of_command_i: $(!!)" >> $0 };_log_error'

このコマンドを .bashrc ファイルに追加し、ソース ~/.bashrc を実行した後、次のコマンドを実行しました。

ls -l

それから私のエイリアスを呼び出しました。

alias_name arg0 arg1 arg2

しかし、私がターミナルで見たのは次のようになりました。

>

ファイルは生成されません。

これがこのタイプの結果を得る正しい方法なのか、それともシステムの他の場所にあるスクリプトを呼び出すためのエイリアスが必要かどうか疑問に思います。

ノート:私が直面している1つの制限は移植性です。私はしばしば別のシステムにSSHを介して接続し、そこでこのコマンドを実行する必要があります。これがエイリアスがこれを行う正しい方法であると考えた理由です。問題のコンピュータでは、単にsshを使用して〜./bashrcの名前を〜/.bashrc_disabledに変更してから、私のbashrc(この新しいエイリアスを含む)をscpできます。 )その場で私のコマンドを実行し、結果ファイルをマイコンピュータに再度scpし、.bashrcを削除し、元の.bashrcの名前を.bashrc_disabledから.bashrcに変更しました。

関連情報