Ich versuche, mit zu machen war zu unterscheiden, seine in TerminalBash: function-Wrapper für andere Funktionen Funktion mit Rohr als Argument für eine andere Funktion
red_line="$(tput setaf 1)## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## $(tput sgr 0)"
function wrapper {
echo $red_line;
echo "$(tput setaf 1)## $(tput setab 7)$(tput setaf 0)$1 $(tput sgr 0)";
$2;
echo $red_line;
}
function foo {
wrapper "custom command description" "ps axo pid,stat,pcpu,comm | tail -n 10;"
}
aber Fehler ist aufgetreten: ps: illegal argument: |
I‘ $(ps ... | tail -n 10)
und Backticks habe versucht, statt Zeichenfolge zu verwenden und dann mit echo $2
Ergebnis in Wrapper ausdrucken, aber gefangen weiteren Fehler
versuchte auch "eval $(ps ... | tail -n 10)"
und es hat auch nicht funktioniert.
Alles funktioniert gut w/o-Wrapper:
function pss {
echo $red_line
echo "$(tput setaf 1)## $(tput setab 7)$(tput setaf 0)formatted 'ps ax' command $(tput sgr 0)"
ps axo pid,stat,pcpu,comm | tail -n $1;
echo $red_line
}
[Ich versuche, einen Befehl zu setzen in einer Variablen, aber die komplexen Fälle scheitern immer!] (http://mywiki.wooledge.org/BashFAQ/050) – chepner