Weiterleitung der Ausgabe an einen Alias

Weiterleitung der Ausgabe an einen Alias

Um einen bestimmten Befehl auszuführen, muss ich verwenden

sudo -h -u someuser <somecommand>

um die Vernunft zu bewahren, habe ich einen Alias ​​erstellt

alias somecommand='function _dm(){ sudo -u ubuntu somecommand $@; };_dm'

Das funktioniert großartig, bis ich versuche, etwas Ausgefallenes zu machen.

somecommand arg1 | xargs somecommand arg2

Das bereitet mir Probleme, da xargs den Alias ​​nicht aufruft. Ist es möglich, das irgendwie zum Laufen zu bringen?

Antwort1

  1. Solange Ihr Alias ​​in Ihrem ist .bashrc, sollten Sie in der Lage sein,...|xargs bash -c somealias ...

  2. Einfacher ist es, Ihren Alias ​​stattdessen in ein Shell-Skript einzufügen. Erstellen Sie ~/bin, fügen Sie es zu Ihrem hinzu PATH, fügen Sie das Skript ein und Ihr ursprünglicher Befehl wird funktionieren.

Beispiel-Shell-Skript:

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

Bearbeiten:diese Antwortschlägt vor, Nr. 1 mit bash -icstatt zu versuchen bash -c.

verwandte Informationen