変数も含む bash コマンドのショートカットを作成することは可能ですか?

変数も含む bash コマンドのショートカットを作成することは可能ですか?

例えば、

tar cf - /VARIABLE_1 -P | pv -s $(du -sb /VARIABLE_1 | awk '{print $1}') | gzip > VARIABLE_2.tar.gz

と入力するだけでtarpb VARIABLE_1 VARIABLE_2済むのでしょうか? それともスクリプト経由でのみ可能なのでしょうか?

答え1

関数を使用する中間の方法があります。 では.bashrc、これを行う関数を定義できます。

tarbp() {
  input=$1
  output=$2
  tar cf - /"${input}" -P | pv -s "$(du -sb /"${input}" | awk '{print $1}')" | gzip > "${output}".tar.gz
}

$1$2関数に渡される最初のパラメータと 2 番目のパラメータです。

シェルを再起動(または をリロード.bashrc)すると、通常のコマンドのように関数を使用できます。

tarbp input output

(Ubuntu では、これに対して bash 補完も実行されます)

関連情報