PDA

View Full Version : Aiuto per uno script della BASH.


barzi
26-09-2007, 11:32
Ciao a tutti.
Dovrei preparare uno script del genere ma non vuole funzionare.
In partica lo script deve ricevere in Input 4 parametri.
Poi a seconda della lunghezza di alcune stringhe (in questo caso CLIENTE e MODELLO) fa un echo con degli spazi.
Se il numero di caratteri di CLIENTE è maggiore di 7 allora ad un certo punto fa TAB. altrimenti fa TAB TAB (ovvero il carattere \t).
Stessa cosa per MODELLO. Per capirci meglio vi allego lo script:


#!/bin/bash

echo "Inserire il numero dell'Ordine di Produzione: "
read OP
echo "Inserire il nome del cliente: "
read CLIENTE
echo "Inserire il numero il modello di scheda (anche con eventuali estensioni): "
read MODELLO
echo "Inserire il percorso da dove prendere i moduli per quest'ordine di produzione: "
read PERCORSO


if [ wc -c "$CLIENTE" > "7" ];
then spazio1="\t"
else spazio1="\t\t"
fi

if [ wc -c "$MODELLO" > "7"];
then spazio2="\t"
else spazio2="\t\t"
fi

echo -e "$OP\t\t$CLIENTE$spazio1$MODELLO$spazio2$PERCORSO" >> tabella.txt



Sicuramente c'è qualche errore sintattico (e forse semantico).
Potete aiutarmi?
Grazie :-)

DeusEx
26-09-2007, 12:49
Ciao a tutti.
Dovrei preparare uno script del genere ma non vuole funzionare.
In partica lo script deve ricevere in Input 4 parametri.
Poi a seconda della lunghezza di alcune stringhe (in questo caso CLIENTE e MODELLO) fa un echo con degli spazi.
Se il numero di caratteri di CLIENTE è maggiore di 7 allora ad un certo punto fa TAB. altrimenti fa TAB TAB (ovvero il carattere \t).
Stessa cosa per MODELLO. Per capirci meglio vi allego lo script:


#!/bin/bash

echo "Inserire il numero dell'Ordine di Produzione: "
read OP
echo "Inserire il nome del cliente: "
read CLIENTE
echo "Inserire il numero il modello di scheda (anche con eventuali estensioni): "
read MODELLO
echo "Inserire il percorso da dove prendere i moduli per quest'ordine di produzione: "
read PERCORSO


if [ wc -c "$CLIENTE" > "7" ];
then spazio1="\t"
else spazio1="\t\t"
fi

if [ wc -c "$MODELLO" > "7"];
then spazio2="\t"
else spazio2="\t\t"
fi

echo -e "$OP\t\t$CLIENTE$spazio1$MODELLO$spazio2$PERCORSO" >> tabella.txt



Sicuramente c'è qualche errore sintattico (e forse semantico).
Potete aiutarmi?
Grazie :-)

Manca uno spazio: "7" ];
se non ricordo male se non lo metti dà errore
e poi non mi torna come hai messo i punto e virgola

barzi
27-09-2007, 15:01
bene....
Il problema l'ho risolto. bastava mettere ${#stringa} ;-)

Ora ho un altro problema:
Come cancellare una riga in un file di testo?
Mi spiego meglio:

ottengo la riga da cancellare con il comando

read pippo
cat tabella.txt| grep $pippo

Ora questa riga voglio cancellarla da tabella.txt. Come faccio?
Thanx :)

barzi
28-09-2007, 22:16
Risolto con sed ;)