1. ホーム
  2. bash

[解決済み] パラメータを取るBashのエイリアスを作る?

2022-03-04 21:54:24

質問

以前はCShell( csh ) を使用すると、パラメータを受け取るエイリアスを作ることができます。その表記は次のようなものでした。

alias junk="mv \\!* ~/.Trash"

Bashでは、これは動作しないようです。Bashには便利な機能が多数あることから、この機能は実装されていると思われますが、どのように実装されているのか気になるところです。

どのように解決するのですか?

Bashのエイリアスは、直接パラメータを受け付けません。関数を作成する必要があります。

alias はパラメータを受け取りませんが、関数はエイリアスと同じように呼び出すことができます。例えば

myfunction() {
    #do things with parameters like $1 such as
    mv "$1" "$1.bak"
    cp "$2" "$1"
}


myfunction old.conf new.conf #calls `myfunction`

ちなみに、Bash 関数は .bashrc などのファイルは、シェルの中でコマンドとして利用できます。ですから、例えば先ほどの関数を次のように呼び出すことができます。

$ myfunction original.conf my.conf