awk - Probleme mit Variablenaufloesung
Hallo, ich hab da ein kleines Problem mit awk, es geht um die Portermittlung aus der rpcinfo Anfrage in meiner Firewall. Folgendes funktioniert einwandfrei: mountdport="`/usr/sbin/rpcinfo -p |/usr/bin/awk '/100005 1 udp/ {print $4}'`" Jetzt will ich ne Schleife machen und definier mir die zu unter- suchenden Ports und Protokolle in variablen und lauf durch ne Schleife: export NFS_MOUNTDS="1 2 3" export NFS_MOUNTPROTS="udp tcp" ... for ni in $NFS_MOUNTDS ; do for nj in $NFS_MOUNTPROTS; do mountdport="`/usr/sbin/rpcinfo -p |/usr/bin/awk '/100005 $ni $nj/ {print $4}'`" ... Jetzt wird nix mehr gefunden... Jemand eine Idee? -- Machs gut | http://www.iiv.de/schwinde/buerger/tremmel/ | http://www.knightsoft.de Manfred | http://www.knightsoft-net.de
On Son, Feb 18, 2001 at 08:00:20 +0100, Manfred Tremmel wrote: [...]
Jetzt will ich ne Schleife machen und definier mir die zu unter- suchenden Ports und Protokolle in variablen und lauf durch ne Schleife:
export NFS_MOUNTDS="1 2 3" export NFS_MOUNTPROTS="udp tcp" ... for ni in $NFS_MOUNTDS ; do for nj in $NFS_MOUNTPROTS; do mountdport="`/usr/sbin/rpcinfo -p |/usr/bin/awk '/100005 $ni $nj/ {print $4}'`" ...
Jetzt wird nix mehr gefunden...
Das $ hat innerhalb eines regulären Ausdrucks (also auch in der Mustererkennung des awk) nun mal eine andere Bedeutung und kennzeichnet keine Variablen. Versuch mal folgendes: mountdport="`/usr/sbin/rpcinfo -p |/usr/bin/awk '/100005 '$ni' '$nj'/ {print $4}'`" Damit schmuggelst Du dem awk die Shell-Variablen $ni und $nj unter (ungetestet). Jan
Am Sonntag, 18. Februar 2001 21:20 schrieb Jan Trippler:
Das $ hat innerhalb eines regulären Ausdrucks (also auch in der Mustererkennung des awk) nun mal eine andere Bedeutung und kennzeichnet keine Variablen. Versuch mal folgendes:
mountdport="`/usr/sbin/rpcinfo -p |/usr/bin/awk '/100005 '$ni' '$nj'/ {print $4}'`"
manfred@eddie:~ > echo "`/usr/sbin/rpcinfo -p |/usr/bin/awk '/100005 1 tcp/ {print $4}'`" 32780 manfred@eddie:~ > ni=1 manfred@eddie:~ > nj=tcp manfred@eddie:~ > echo "`/usr/sbin/rpcinfo -p |/usr/bin/awk '/100005 '$ni' '$nj'/ {print $4}'`" 32780 Jo, scheint zu klappen, vielen Dank. -- Machs gut | http://www.iiv.de/schwinde/buerger/tremmel/ | http://www.knightsoft.de Manfred | http://www.knightsoft-net.de
participants (2)
-
Jan.Trippler@t-online.de
-
Manfred Tremmel