Fehler im script

D

Durmast

Hallo,
Ich bin relativ neu was bash scripte angeht und kom einfach nicht dahinter warum mir das script hier nicht die ausgabe der variable $name liefert. direkt in der bash funzt das gnaze ohne probleme. Das script wird mit einer ip als parameter aufgerufen und soll dann aus einer datei, mac2id.txt, den namen zu zugehörigen mac adresse finden. Die variable $mac wird ausgegeben während name nix liefert.

#!/bin/bash
ping -c1 -W1 $1 > /dev/null
mac=`arp $1 | grep -v 'Address'|grep -v 'incomplete'| awk '{print $3}'`
name=`grep $mac mac2id.txt | cut -d',' -f2`
echo $mac
echo $name

Danke im vorraus
:hilfe2: :hilfe2:
 
mac adresse,name
mac adresse,name

das ganze funzt ja ohne probleme direkt von der shell aus ausgeführt. der grep aufruf gibt auch das richtige zurück. nur in dem script will ers nicht
 
Hallo

Ich würde es mal so probieren.

name=$(grep "$mac" mac2id.txt | cut -d',' -f2)
wichtig dabei "$mac"

Gruß Wolfgang
 
Hallo

Dann benutze die Option x und schau dir an, zu was welche Variable expandiert.
Eventuell ist da ja ein Zeilentrenner zuviel o.d.gl..
Kann ich von hier schlecht sagen, da ich nicht sehe was deine einzelnen Befehle ausgeben.

Gruß Wolfgang
 
führs mal stufenweise aus, damit man was sieht.
statt
Code:
mac=`arp $1 | grep -v 'Address'|grep -v 'incomplete'| awk '{print $3}'`
name=`grep $mac mac2id.txt | cut -d',' -f2`
so
Code:
echo "$1"
arp $1
arp $1| grep -v 'Address'|grep -v 'incomplete'
arp $1 | grep -v 'Address'|grep -v 'incomplete'| awk '{print $3}'

mac=$(arp $1 | grep -v 'Address'|grep -v 'incomplete'| awk '{print $3}')
echo "$mac"
grep $mac mac2id.txt | cut -d',' -f2
 
Wenn man den Wald vor lauter bäumen nicht mehr sieht... Ich tupes hab die Mac adressen in der mac2id durch - getrennt, während ich sie im script mit : getrennt geliefert bekomme!
Danke für euere hilfe! :headup:
 

Ähnliche Themen

Switche abfragen über Script

Queue für copy Script

Shellskript - Fehler in Cron

Problem mit HSPA+ Modem Huawei E353 - Installation unmöglich?

Last mit etc/passwd anzeigen lassen

Zurück
Oben