シェルコマンドにエイリアスを引数として渡す方法

シェルコマンドにエイリアスを引数として渡す方法

このようにエイリアスを設定しました。

alias X='`xclip -o --selection primary`'

これは、クリップボードの値をエコーし​​たい場合に非常に便利です。しかし、私はそれを他のコマンドの引数として使用できることを本当に望んでいます。

ssh X

私もそれを関数にしようとしましたが、それも動作しないようです。私はそれを文字列として保存して実行できると思いますssh $(X) が、同様の構文は避けたいと思います。

これまでのところ、パラメータはまったく拡張されず、最初に入力した項目でのみ機能するようです。

私はそれが可能であることを知っていますが、alias X="ssh xclip..."sshだけでなくすべてのコマンドに対して機能したいと思います。

だから質問は、コマンド引数のときに単一の文字を拡張する方法だと思います。

ベストアンサー1

エイリアスで使用できるコマンドを最初に定義する必要がありますが、トリッキーな小さな回避策を使用してエイリアスをリンクできます。

広く知られていないかもしれませんが、私のような人がいれば

alias chx='chmod +x'

それから実行しようとするsudo chxsudo: chx: command not found

しかし。 提供する場合

alias sudo='sudo '
alias chx='chmod +x'

sudo別のエイリアスが最初の引数である限り、このエイリアスとは異なるエイリアスを使用できます。


このクリップボードを最も使用したいプログラムに適用できます。提供された例が機能するには、次の手順を実行します。

alias ssh='ssh '
alias X='`xclip -o --selection primary`'

おすすめ記事