将输出通过管道传输到别名

将输出通过管道传输到别名

为了运行某个命令我需要使用

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. 更简单的方法是将别名放在 shell 脚本中。创建~/bin,将其添加到PATH,然后放入脚本,这样您的原始命令就可以正常工作了。

示例 shell 脚本:

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

编辑这个答案bash -ic建议尝试使用而不是 来尝试 #1 bash -c

相关内容