Das ist merkwürdig. Das hier funktioniert natürlich
und diese beiden auch (uname hat also recht und mit 4A4Bs Variante ist es genau gleich!)
Code: Alles auswählen
$ ARGS="cp(1)"
$ yelp "man:${ARGS}"
$ su ${USERNAME} -c "yelp \"man:${ARGS}\""
aber in meinem Skript funktioniert es nicht. Testweise habe ich die Zeile durch
Code: Alles auswählen
echo su ${USERNAME} -c "yelp \"man:""${ARGS}""\" &> /dev/null"
ersetzt und erhalte als Ausgabe
was mir richtig zu sein scheint, ich erhalte aber nur ein leeres yelp-Fenster
Also habe ich mir noch die Prozessliste angeseehen und auch da sieht der Aufruf eigentlich richtig aus (es wundert mich allerdings, dass es gleich 3 sind und nicht nur 2)
Code: Alles auswählen
$ ps aux | grep yelp
root 4162 0.0 0.0 60656 3620 pts/0 S+ 13:54 0:00 su smutbert -c yelp "man:cp(1)" &> /dev/null
smutbert 4163 0.0 0.0 14928 2852 ? Ss 13:54 0:00 bash -c yelp "man:cp(1)" &> /dev/null
smutbert 4164 5.2 0.2 2358260 72652 ? Sl 13:54 0:00 yelp man:cp(1)