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: