為了運行某個命令,我需要使用
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 ...
更簡單的方法是將別名放入 shell 腳本中。創建
~/bin
,將其添加到您的PATH
,將腳本放入,您的原始命令就會起作用。
shell 腳本範例:
#!/bin/bash
sudo -u ubuntu somecommand "$@"
編輯:這個答案建議嘗試 #1 而bash -ic
不是bash -c
.