出力をエイリアスにパイプする

出力をエイリアスにパイプする

特定のコマンドを実行するには

sudo -h -u someuser <somecommand>

正気を保つために別名を作成しました

alias somecommand='function _dm(){ sudo -u ubuntu somecommand $@; };_dm'

何か凝ったことをしようとするまでは、これはうまく機能します。

somecommand arg1 | xargs somecommand arg2

xargs はエイリアスを呼び出さないので、問題が発生します。これを何とか動作させることは可能ですか?

答え1

  1. エイリアスがあなたの にある限り.bashrc、あなたはできるはずです...|xargs bash -c somealias ...

  2. 代わりに、エイリアスをシェル スクリプトに配置する方が簡単です。 を作成し~/bin、それを に追加してPATH、 にスクリプトを配置すると、元のコマンドが機能します。

シェルスクリプトの例:

#!/bin/bash
sudo -u ubuntu somecommand "$@"

編集:この答えbash -icではなく、#1 を試すことを提案しますbash -c

関連情報