Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Sistemi Operativi, 9 CFU => Topic started by: Chuck_son on 27-05-2012, 15:12:52



Title: problema comando shell
Post by: Chuck_son on 27-05-2012, 15:12:52
il comando "wc -c testo.txt"  dove testo.txt è composto da : "1 e 2 sono 13"(escluse virgolette), dovrebbe dare 13, ma mi da 14, mi sfugge qualcosa?


per quanto riguarda il sort, è impossibile ordinare nella riga stessa?

non c'è un modo per "moltiplicare" l'esecuzione di un comando?


Title: Re:problema comando shell
Post by: turiddu91 on 27-05-2012, 15:31:21
il comando sort, come dice anche lo stesso manuale, ordina le righe (sort lines of text files). Forse esiste un qualche altro comando che ordina i caratteri.. ma non lo so XD cmq, il fatto di wc, penso sia 14 perchè conta anche il carattere finale EOF.. inoltre, moltiplicare in che senso? se vuoi, si può concatenare o fare il comando del comando!


Title: Re:problema comando shell
Post by: Chuck_son on 27-05-2012, 15:42:49
il comando sort, come dice anche lo stesso manuale, ordina le righe (sort lines of text files). Forse esiste un qualche altro comando che ordina i caratteri.. ma non lo so XD cmq, il fatto di wc, penso sia 14 perchè conta anche il carattere finale EOF.. inoltre, moltiplicare in che senso? se vuoi, si può concatenare o fare il comando del comando!

perfetto, allora per moltiplicare intendo: esegui "echo ciao" 100 volte


Title: Re:problema comando shell
Post by: turiddu91 on 27-05-2012, 16:14:03
puoi usare il comando for! XD o altri costrutti come l'if o il while! oppure fai un programmino in c e lo esegui da shell XD

qui -> http://www.freeos.com/guides/lsst/ch03sec06.html <- ci sono le spiegazioni ! puoi fare:
for ((i=0;i<100;i++))
 do
 echo ciao
 done

e poi ti scrive 100 volte ciao XD


Title: Re:problema comando shell
Post by: ɹǝǝuıƃuǝsɹǝʌǝɹ on 27-05-2012, 16:23:23
il comando "wc -c testo.txt"  dove testo.txt è composto da : "1 e 2 sono 13"(escluse virgolette), dovrebbe dare 13, ma mi da 14, mi sfugge qualcosa?
Sì, e non è il carattere EOF (che non è un carattere presente realmente nel file). Si tratta del carattere di "a capo" (codice ASCII 13 decimale), che è finito nel tuo file perché prima di salvare è rimasto scritto nell'editor.

Per sincerartene, usa il comando stat (http://goo.gl/fUHwR) con la sintassi:
Code:
stat -c %s testo.txt

non c'è un modo per "moltiplicare" l'esecuzione di un comando?
"moltiplicare" l'esecuzione di un comando è proprio un verbo infelice per indicare la ripetizione, di un comando.

Come suggeriva turiddu91, si deve ricorrere a costrutti iterativi della shell, come appunto faceva notare, il ciclo for (ed eventualmente altri comandi), come in:
Code:
for i in $(seq 1 100); do echo ciao; done


Title: Re:problema comando shell
Post by: Chuck_son on 27-05-2012, 16:26:56
il comando "wc -c testo.txt"  dove testo.txt è composto da : "1 e 2 sono 13"(escluse virgolette), dovrebbe dare 13, ma mi da 14, mi sfugge qualcosa?
Sì, e non è il carattere EOF (che non è un carattere presente realmente nel file). Si tratta del carattere di "a capo" (codice ASCII 13 decimale), che è finito nel tuo file perché prima di salvare è rimasto scritto nell'editor.

Per sincerartene, usa il comando stat (http://goo.gl/fUHwR) con la sintassi:
Code:
stat -c %s testo.txt

non c'è un modo per "moltiplicare" l'esecuzione di un comando?
"moltiplicare" l'esecuzione di un comando è proprio un verbo infelice per indicare la ripetizione, di un comando.

Come suggeriva turiddu91, si deve ricorrere a costrutti iterativi della shell, come appunto faceva notare, il ciclo for (ed eventualmente altri comandi), come in:
Code:
for i in $(seq 1 100); do echo ciao; done

il mio modo di parlare a volte sfasa haha  :yoh
allora il comando stats mi da:1515


Title: Re:problema comando shell
Post by: turiddu91 on 27-05-2012, 16:28:53
vero, ora che penso, il comando echo alla fine mette sempre "l'accapo". Per ovviare devi mettere l'attribbuto -n ad echo!


Title: Re:problema comando shell
Post by: ɹǝǝuıƃuǝsɹǝʌǝɹ on 27-05-2012, 16:30:24
allora il comando stats mi da:1515
Esegui questo comando:
Code:
echo -n "1 e 2 sono 13" > testo.txt; stat -c %s testo.txt
Cosa ti spunta in output? .penso


Title: Re:problema comando shell
Post by: Chuck_son on 27-05-2012, 16:36:44
allora il comando stats mi da:1515
Esegui questo comando:
Code:
echo -n "1 e 2 sono 13" > testo.txt; stat -c %s testo.txt
Cosa ti spunta in output? .penso

ah si scusa, ahhahah avevo dimenticato di aver messo troppe cose in quel file, cmq adesso mi da 13, che dovrebbe essere esatto no?