Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

OS Linux

Bash command uitvoeren met variable

Venzent
7 antwoorden
  • Ik heb een bestand (ip_tes) die 2 ipadressen bevat (192.168.1.42 en 192.168.1.58 ), dit bestand dient als test, het uiteindelijk te gebruiken bestand bevat ruim 200 adressen…..
    Ik heb een variable aangemaakt met:
    [code:1:69575d60b5]
    ip=\root\snmp\ip_test
    [/code:1:69575d60b5]
    als ik "cat $ip" doe geeft hij ook netjes:
    192.168.1.42
    192.168.1.58
    So far so good……
    Nu wil ik echter een command uitvoeren met gebruikmaking van deze variable, echter dan wordt het niet herkent als variable:
    [code:1:69575d60b5]
    [root@FC3 snmp]# snmpwalk -v2c -m ALL -c public $ip .1.3.6.1.2.1.25.6.3.1.2
    snmpwalk: Unknown host (No such file or directory)
    [/code:1:69575d60b5]
    Daar waar "$ip" staat, vul je normaliter het ipadres in, als ik dat doe gaat het uiteraard goed.
    Ik vermoed dat ik iets moet gaan doen met een for/do loop, echter lukt het mij niet om daar een variable toe te wijzen waarbij de waardes in een bestand zijn……
    Hoe pak ik dit het beste aan? Alle howto's gaan bij een for/do uit van een aantal waardes die je meegeeft, niet 1tje die ze uitleest uit een bestand….
  • Helpt http://mrlee.homelinux.net/basic-scripting.txt ?
  • [quote:a6d73f6804="MrLeeJohn"]Helpt http://mrlee.homelinux.net/basic-scripting.txt ?[/quote:a6d73f6804]
    Ondanks het feit dat de tutorial inderdaad zeer zinvol is, wordt er meer ingegaan op if/then…..Niet echt op the for/do options, met mijn simpele kennis van bash-scripting loop ik zeer waarschijnlijk vast op ergens een quote erbij of eraf……
    [code:1:a6d73f6804]
    [root@FC3 snmp]# for ip in
    oot/snmp/ip_test ; do cat $ip ; done
    192.168.1.42
    192.168.1.58
    [root@FC3 snmp]# [root@FC3 snmp]#for ip in
    oot/snmp/ip_test ; do snmpwalk -v2c -m ALL -c public $ip .1.3.6.1.2.1.25.6.3.1.2 ; done
    -bash: syntax error near unexpected token `do'
    [/code:1:a6d73f6804]
    Ik laat de syntax hetzelfde en vervang alleen het cat-command met het snmpwalk-command, en dan gaat het dus fout….

    Edit:
    als ik de for/do structuur niet binnen 1 regelhou, maar echt stap voor stap doe, komt er dit uit:
    [code:1:a6d73f6804]
    [root@FC3 snmp]# for ip in
    oot/snmp/ip_test ; do
    > snmpwalk -v2c -m ALL -c public $ip .1.3.6.1.2.1.25.6.3.1.2
    > done
    snmpwalk: Unknown host (No such file or directory)
    [/code:1:a6d73f6804]
  • Als het commando uitgebreid is (snmpwalk…ip) zet je het tussen ' en '. Werkt dat?
  • Nope, ticks/backticks en quotes geprobeerd:
    [code:1:ec2bf6cfdd]
    [root@FC3 snmp]# for ip in
    oot/snmp/ip_test ; do 'snmpwalk -v2c -m ALL -c public $ip .1.3.6.1.2.1.25.6.3.1.2' ; done
    -bash: snmpwalk -v2c -m ALL -c public $ip .1.3.6.1.2.1.25.6.3.1.2: command not found
    [root@FC3 snmp]# whereis snmpwalk
    snmpwalk: /usr/bin/snmpwalk /usr/share/man/man1/snmpwalk.1.gz
    [root@FC3 snmp]# for ip in
    oot/snmp/ip_test ; do '/usr/bin/snmpwalk -v2c -m ALL -c public $ip .1.3.6.1.2.1.25.6.3.1.2' ; done
    -bash: /usr/bin/snmpwalk -v2c -m ALL -c public $ip .1.3.6.1.2.1.25.6.3.1.2: Onbekend bestand of map
    [/code:1:ec2bf6cfdd]

    Als ik de variable $ip vervang door 1 van de 2 ip-adressen, dan werkt het wel.
  • Vraag het eens op het scriptdeel van forum.nedlinux.nl .
  • Ok, zal ik doen, kheb hem ook al uitstaan bij fedoraforum.org

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.