[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [bash] eseguire comando con parametri in variabile



> 
>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


Reply to: