"alias"コマンドでパラメータを渡すことはできますか? [コピー]

"alias"コマンドでパラメータを渡すことはできますか? [コピー]

aliasコマンドを使用してパラメータを渡すことができるかどうかを知りたいです。

たとえば、

alias d="dmesg|grep -iw usb|tail -5" 

dは最後の5行を印刷します。 dを使用して他の行数を印刷するには、dのエイリアスコマンド宣言をもう一度変更する必要があります。

行数を変更するために宣言を再入力する必要がないようにaliasコマンドの宣言を変更する方法はありますか? dのエイリアスを宣言するときに行番号をパラメータとして渡すのと同じですか?それともこの問題を解決する他の方法はありますか?

答え1

「エイリアス」でパラメータを渡すことはできますか?

いいえ。エイリアスは単純な文字列置換です。

機能を使用してください。

d(){
   dmesg|grep -iw usb|tail -"$1" 
}

答え2

この場合 - はい、引数は最後の引数なので、例外を作成できます。

alias d='dmesg | grep -iw usb | tail'
d -5

動作する必要があります。

答え3

どのようなシェルを使用しますか? zsh では、次のようにパラメーターを渡すことができます。

d () {
    dmesg|grep -iw usb|tail -$1
}

エイリアスは常に短い文字列を長い文字列に置き換えます。

関連情報