管道輸出到別名

管道輸出到別名

為了運行某個命令,我需要使用

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 "$@"

編輯:這個答案建議嘗試 #1 而bash -ic不是bash -c.

相關內容