Befehlsübergabe an eine Variable

Vagofft

Vagofft

Sysop
Hallo Leute!

Ich habe ein Problem das mir den letzten Nerv raubt! ;(
Ich möchte ein Shellscript schreiben das nach einen laufenden Prog. sucht und es dann beendet.

In der Shell funktioniert folgendes:

ps ax | sed -e 's/ /,/g' | grep cron | awk -F, '{ print $2 }'

Ausgegeben wird mir dann, wie gewünscht nur die Prozessnummer.

Aber wie übergebe ich diese Ausgabe an eine Variable, innerhalb eines Scrips?

Habe folgende Varianten versucht aber es schlug fehl:

variable=ps ax | sed -e 's/ /,/g' | grep cron | awk -F, '{ print $2 }'
echo "$variable"

variable="ps ax | sed -e 's/ /,/g' | grep cron | awk -F, '{ print $2 }'"
echo "$variable"

variable='ps ax | sed -e \'s/ /,/g\' | grep cron | awk -F, \'{ print $2 }\''
echo "$variable"


Die Ausgabe schlug immer fehl. :bounce:

Wer kann mir sagen was ich falsch mache???
 
moin moin

wie wär's damit

foobar=`pgrep cron`


Gruß HL
 
wie wäre es mit:
variable=`ps ax | sed -e 's/ /,/g' | grep cron | awk -F, '{ print $2 }'`
echo "$variable"

du brauchst das " ` " zeichen zum maskieren befehlen.

ausserdem könntest doch die ausgabe (pid) in eine datei umleiten und sie dann bei "kill" befehl wieder übergeben.

kill -9 `cat <pidfile>`
 
Ja ja,

und wieder einmal als dau geoutet.
Vielen dank für die schnelle Hilfe. :))

Da habe ich wohl das Rad neu erfunden.

ps ax | sed -e 's/ /,/g' | grep cron | awk -F, '{ print $2 }' entpricht ja genau pgrep

Na ja, jetzt weiss ich wenigstens wie pgrep funktioniert. :P

Als Shell Anfänger habe ich leider immernoch das Problem mit der Menge an Befehlen. Da verlaufe ich mich schnell in einen viel zu komplizierten Weg.

Besserung versprochen.
 
Vagofft schrieb:
Ja ja,

und wieder einmal als dau geoutet.
Vielen dank für die schnelle Hilfe. :))

Da habe ich wohl das Rad neu erfunden.

ps ax | sed -e 's/ /,/g' | grep cron | awk -F, '{ print $2 }' entpricht ja genau pgrep

Na ja, jetzt weiss ich wenigstens wie pgrep funktioniert. :P

Als Shell Anfänger habe ich leider immernoch das Problem mit der Menge an Befehlen. Da verlaufe ich mich schnell in einen viel zu komplizierten Weg.

Besserung versprochen.

man kann nicht alle befehle kennen 8). pgrep ist allerdings nen befehl, den du garantiert nicht wieder vergisst ;). alternativ gibt es auch noch pidof.


Gruß HL
 
Ajo anstatt
foobar=`pgrep cron`
geht auch
foobar=$(pgrep cron)

Ist eigentlich dasselbe aber meiner Meinung nach leichter lesbar :)
 

Ähnliche Themen

Switche abfragen über Script

sed in awk

Telefoninterview (Wie sich auf Bash-Shell-Fragen vorbereiten?)

SED Variable

sed suchen und ersetzen mit Variable übergeben?

Zurück
Oben