2016-04-25 1 views
-1

Ich versuche, den folgenden Befehl auszuführen, aber die Ausgabe kommt nicht wie erforderlich.So speichern Sie die Ausgabe von sudo -S su -c <user> auf eine beliebige Variable

var=$(echo "<password>"|sudo -S su -l <user> -c "<command>") 

Bitte helfen, wenn jemand kann? Erwartetes Ergebnis: var = $ (echo "" | sudo -S su -l -c "pwd") echo $ var/home/bhushan $: Tatsächliches Ergebnis: echo $ var

$:

+0

Bitte erwartet erwähnen und tatsächliche Leistung. Was muss bisher versucht werden? –

+0

erwartetes Ergebnis: var = $ (echo "" | sudo ES su -l -c "pwd") echo $ var /home/bhushan $: Tatsächliches Ergebnis: echo $ var $ : – Bhushan

Antwort

0

Sie können es umgehen, indem Sie die Ausgabe des Befehls in eine Datei zu speichern, dann seine Berechtigung ändern, so dass alle Benutzer sie sehen und in einem folgenden Befehl aus der Datei laden:

sudo -S "<command> > /tmp/sudocmd.out && chmod 644 /tmp/sudocmd.out" 
var=$(cat /tmp/sudocmd.out) 
+0

Not Working .... Datei wird erstellt, aber es ist eine leere Datei. – Bhushan

+0

Also gibt es keine Ausgabe für den Befehl. Scheint, dass das Problem mit dem Befehl selbst ist – yorammi

+0

ja du bist richtig..ok vielen Dank übrigens ...! – Bhushan

0

Sie können Verwenden Sie Backticks

var=`sudo -S su -l -c ""` 

oder die $(command) Syntax

var=$(sudo -S su -l -c "") 

(denken Sie daran, obwohl die sudo -S su -l -c "" nicht ausgegeben etwas tut so $var leer sein)

+0

erwartet Ergebnis: var = 'sudo -S su -l -c" pwd "' echo $ var /home/bhushan/meincode $: – Bhushan

Verwandte Themen