Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Analizzare/Copiare contenuto di una variabile in Bash

    Ciao a tutti,
    mi sono dato a pochi giorni a linux e man mano che ne acquisisco conoscenza sono sempre più attratto dalle sue enormi potenzialità.
    Sto cercando di costruire uno script che mi consenta di verificare se nella mia LAN sono presenti indirizzi IP duplicati.

    Non riesco però a capire come sia possibile analizzare la stringa contenuta in una variabile, oppure salvare il contentuto della stessa variabile dentro a un file.. cosi da effettuare dentro di esso la ricerca.

    Ho googolato per tutta la mattina ma non sono riuscito a trovare niente che potesse aiutarmi.

    Grazie a tutti in anticipo
    TGW

  2. #2
    Utente di HTML.it L'avatar di untamed
    Registrato dal
    Sep 2004
    Messaggi
    830
    Puoi fare tutti i confronti che si possono fare con qualsiasi linguaggio di programmazione, ad esempio dentro ad un "if". Per mettere il valore in un file invece ti basta fare così:
    codice:
    echo $VAR>temp.txt
    "La fede in una missione divina è una delle tante forme di certezza che hanno afflitto la razza umana." - Bertrand Russell

  3. #3
    Ovviamente le possibilita` di analizzare una stringa sono molte. Per esempio se hai una lista di IP attivi sulla tua LAN salvata in un file tipo:

    $ cat IPs.txt
    192.168.0.1
    192.168.0.2
    192.168.0.100
    192.168.0.103
    ...

    puoi fare

    cat IPs.txt | sort -n | uniq -c | egrep -v '^1 '

    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  4. #4
    scusa..

    cat IPs.txt | sort -n | uniq -c | egrep -v '^\s*1 '
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  5. #5
    Grazie mille dell'aiuto.

    In realtà di indirizzi Lan su cui effettuare il controllo ne ho circa 400, ma come fare ciò su diverse classi è un problema che mi porrò negli step successivi una volta che l analisi su un solo host funzionerà.

    Per trovare eventuali Ip duplicati pensavo di utilizzare il comando "arping" (arping -b -c 1 "indirizzo Ip") il quale mi genera X risposte unicast quanti sono gli apparati aventi quello stesso Ip (non so quanto sia "scientifico" ma dai test di questa mattina succedeva sempre).
    Risposte che vado a salvare in maniera indiretta (grazie al vostro aiuto!) dentro a un file txt.

    Leggendo il "man" del grep ho visto che può dare come ritorno 0 o 1 in base al successo o meno della stringa ricercata.. Ma come faccio con un semplice if a sfruttare questi due valori di ritorno?

    Ho provato con una formula del tipo :

    if [ grep "received 2" scansione.txt = "0" ]
    then
    echo "IP DUPLICATO"

    Ma ovviamente non mi ha dato soddisfazione.. Stasera proverò ancora e ancora.. Ma se sapeste darmi una spintarella vene sarei grato . ^^

    TGW

  6. #6
    Ho capito l'erroraccio.. La sintassi giusta credo sia questa:

    if grep -q "stringa" file.txt
    then .. ..


    TGW

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.