Visualizzazione dei risultati da 1 a 8 su 8

Discussione: banalità shell script

  1. #1

    banalità shell script

    ciao,
    in uno shell script inserisco dei comandi che visualizzano delle informazioni su una macchina unix (es. hostname, uname etc.)
    l'output lo redireziono su un file ma se faccio
    hostname >> pippo
    uname >> pippo
    i risultati mi vengono su righe diverse, avrei bisogno che fossero sulla stessa riga separati
    da un ";"... tipo
    cicciohost;pippo:topolino ...
    come posso fare?

  2. #2
    Potresti prima ottenere tutti i valori di cui hai bisogno, poi scrivere il file:
    codice:
    #!/bin/sh
    
    KERNEL=`uname -a`
    HOSTNAME=`hostname`
    CICCIO=`ciccio -p boh`
    
    OUTPUT="$KERNEL;$HOSTNAME;$CICCIO"
    
    echo "$OUTPUT" > /path/del/file.txt
    Non so se può andare

  3. #3
    Originariamente inviato da vortex87
    Potresti prima ottenere tutti i valori di cui hai bisogno, poi scrivere il file:
    codice:
    #!/bin/sh
    
    KERNEL=`uname -a`
    HOSTNAME=`hostname`
    CICCIO=`ciccio -p boh`
    
    OUTPUT="$KERNEL;$HOSTNAME;$CICCIO"
    
    echo "$OUTPUT" > /path/del/file.txt
    Non so se può andare
    grazie molte, va benissimo

  4. #4
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521
    Se ti interessa puoi usare anche echo con l'opzione -n che non fa andare a capo, ad esempio:

    MYNAME="myname"
    YOURNAME="yourname"

    echo -n "$MYNAME" > names
    echo -n ";" >> names
    echo -n "$YOURNAME" >> names

    attenzione però che se alla fine del file non c'è il carattere di fine riga, per aggiungerlo per andare a capo basta fare un:

    echo >> names

    se fai un

    cat names

    otterrai

    myname;yourname
    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

  5. #5
    me stavo a fa' i fatti miei

    echo $(uname)';'$(hostname)';'$(pwd) >fileout

    pierluigi
    z00keeper of
    www.z00.it
    www.slack.z00.it

  6. #6
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521
    Originariamente inviato da pierluigi p
    me stavo a fa' i fatti miei

    echo $(uname)';'$(hostname)';'$(pwd) >fileout

    pierluigi

    Ciao Pier,
    io avevo capito che gli serviva sapere come non far scrivere su righe diverse in un contesto più generale.


    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

  7. #7
    ehmmm, non vi arrabbiate...

    sempre nello script famoso creo automaticamente 3 files: pippo pluto, paperino
    nei 3 files ci sono delle righe
    dovrei leggere la prima riga dei tre file e stampare i valori uno di seguito all'altro, poi la seconda e così via

    potete indicarmi il costrutto da adottare per fare una cosa del genere?

  8. #8
    Originariamente inviato da novembre
    ehmmm, non vi arrabbiate...


    Codice PHP:
    #!/bin/sh

    # pulisco
    rm -*riga.txt

    # listo i file pippo, pluto, paperino
    ls p* > lista

    # inizio il ciclo
    for i in `cat lista`; do

    prima=`head -1 $i`
    seconda=`sed -e '1d' $i | head -1`
    terza=`sed -e '1,2d' $i | head -1`

    # per ogni riga che mi interessa creo un file
    echo $prima >> primariga.txt
    echo $seconda >> secondariga.txt
    echo $terza >> terzariga.txt

    done

    # stampo a video il risultato
    cat *riga.txt 
    E' solo un esempio, va bene se devi gestire poche righe... crea i tre files pippo, pluto, paperino e metti tre righe in ciascuno, poi lancia lo script.

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

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 © 2024 vBulletin Solutions, Inc. All rights reserved.