特定のコマンドを実行するには
sudo -h -u someuser <somecommand>
正気を保つために別名を作成しました
alias somecommand='function _dm(){ sudo -u ubuntu somecommand $@; };_dm'
何か凝ったことをしようとするまでは、これはうまく機能します。
somecommand arg1 | xargs somecommand arg2
xargs はエイリアスを呼び出さないので、問題が発生します。これを何とか動作させることは可能ですか?
答え1
エイリアスがあなたの にある限り
.bashrc
、あなたはできるはずです...|xargs bash -c somealias ...
代わりに、エイリアスをシェル スクリプトに配置する方が簡単です。 を作成し
~/bin
、それを に追加してPATH
、 にスクリプトを配置すると、元のコマンドが機能します。
シェルスクリプトの例:
#!/bin/bash
sudo -u ubuntu somecommand "$@"
編集:この答えbash -ic
ではなく、#1 を試すことを提案しますbash -c
。