为了运行某个命令我需要使用
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 "$@"
编辑:这个答案bash -ic
建议尝试使用而不是 来尝试 #1 bash -c
。