|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2003
Città: Formia
Messaggi: 1545
|
Bash sintassi mi aiutate
questo script controlla lo spazio occupato del disco e mi dice in ordibe qual'è il file oppure la directory che occupa di più mi date una mano con la sintassi a me da questo errore
lanciando l'opzione con a sed: espressione -e #1, carattere 10: Comando `s' non terminato du: `ÄÄ': No such file or directory lanciano l'opzione con f oppure d sed: espressione -e #1, carattere 10: Comando `s' non terminato du: `ÄÄ': No such file or directory #!/bin/bash function usage(){ echo "$0 {f|d|a|} [num]" echo "Elenca file e directory in ordine di occupazione disco " echo "- 'f' mostra solamente i file ,'d' solamente le directory e 'a' entrambi" echo "- 'num' _ il numero di risultati visulalizzati (default 20)" exit 0 } if [[ $# <1 ]];then usage;fi if [[ $1 != 'f' && $1 != 'd' && $1 != 'a' ]];then usage;else type=$1;fi if [[ $2 == "" ]];then num=20;else num=$2;fi count=0 du -a | sort -rn | while read line do obj=$(echo $line | sed -r s/"[0-9]+ *" //) if [[ $type == 'f' && -f $obj || $type == 'd' && -d $obj || $type == 'a' ]];then eval du -sh Ä"$objÄ" fi if [[ $count == $num ]]; then exit;fi count=$(($count+1)) done grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Modifica la riga con sed in questo modo: obj=$(echo $line | sed -r "s/[0-9]+ * //")
e togli i due caratteri strani dalla eval subito dopo. i warning dovrebbero scomparire. ciao |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2003
Città: Formia
Messaggi: 1545
|
grazie ..
una ultima cosa per i file non mi funziona però con l'opzione f non mi trova nulla. tu lo hai provato? |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
ciao |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Feb 2003
Città: Formia
Messaggi: 1545
|
l ' opzione Ä"$objÄ"
server allo script di interpretare i file con i spazi |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Feb 2003
Città: Formia
Messaggi: 1545
|
obj=$(echo $line | sed -r "s/[0-9]+ * //")
perchè in questo modo trovo solo le dir |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:07.



















