> 
>Ciao a tutti, ho ancora un problema con bash. Da uno script devo
>eseguire un comando i cui parametri vengono calcolati nello script
>stesso e tali parametri possono avere spazi al loro interno. In altre
>parole il problema si può riassumere come:
>> #!/bin/sh
>>
>> test_dir="dir con spazi"
>> rm_dir=0
>> if [ ! -d "$test_dir" ]; then
>>     mkdir "$test_dir"
>>     [ $? -gt 0 ] && exit 1
>>     rm_dir=1
>> fi
>>
>> cmd="ls -la \"$test_dir\""
>> $cmd
>>
>> [ $rm_dir ] && rmdir "$test_dir"
>
>Se eseguo lo script mi ritorna:
>ls: impossibile accedere a "dir: No such file or directory
>ls: impossibile accedere a con: No such file or directory
>ls: impossibile accedere a spazi": No such file or directory
>
>Qualcuno ha qualche idea di come si possa risolvere?
>


Prova così: modifica IFS



#!/bin/sh
IFS="
"

test_dir="dir con spazi"
rm_dir=0
if [ ! -d "$test_dir" ]; then
   mkdir "$test_dir"
   [ $? -gt 0 ] && exit 1
   rm_dir=1
fi
cmd="ls -la \"$test_dir\""
$cmd
[ $rm_dir ] && rmdir "$test_dir"



Walter


--
Per REVOCARE l'iscrizione alla lista, inviare un email a
[email protected] con oggetto "unsubscribe". Per
problemi inviare un email in INGLESE a [email protected]

To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: 
http://lists.debian.org/[email protected]

Rispondere a