перенаправление вывода на псевдоним

перенаправление вывода на псевдоним

Чтобы выполнить определенную команду, мне нужно использовать

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. Проще всего вместо этого поместить ваш псевдоним в скрипт оболочки. Создайте ~/bin, добавьте его в свой PATH, поместите скрипт, и ваша исходная команда будет работать.

Пример скрипта оболочки:

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

Редактировать:этот ответпредлагает попробовать №1 bash -icвместо bash -c.

Связанный контент