awk im sh-script mit Variablen will nicht.
-
also ich habe ein Bourne-Shellscript, bei dem ich die PID eines anderen Prozesses herausfinden möchte. Das Ganze dachte ich mir so:
# ################################### # find out if controlclient is active clientStat=`busybox ps | awk '/$clientprg/ && !/awk/ {print $1}'` # ################################### # get client state clientup="down" if [ "$clientStat" != "" ]; then clientup="up" fi
schreibe ich den Namen des Programms in den awk-Suchstring, habe ich keine Probleme. Die Variablen wird allerdings von awk fehlinterpretiert.
Ich habe schon versucht, "" zu nutzen, aber auch den awk-string in eine extra Variablen zu legen. Nichts funktionierte.
Wie kann ich das jetzt beheben?
-
Du machst das auch falsch, du hast deine Shell-Variable in '' gepackt, dadurch wird diese nicht substituiert. Beachte auch, dass awk seine Strings in Quotes will.
Richtig ist:# ################################### # find out if controlclient is active clientStat=`busybox ps | awk "/$clientprg/ && !/awk/ {print \"$1\"}"` # ################################### # get client state clientup="down" if [ "$clientStat" != "" ]; then clientup="up" fi