Bash: optimisation d'un if
Bonjour,
Mon script fonctionne correctement, mais j'aimerais directement utiliser les variables plutôt que de créer un sous-shell. Voici un extrait du code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| while read line
do
if [ $(echo ${line:2:1} | grep "-") ]
then
oldDate=${newDate}
newDate=${line##* }
echo "${timeChar}${newDate}"
elif [ $(echo ${line:0:1} | grep [0-9]) ]
then
echo "${veIdChar}${line%%:*}"
echo ${line##*:}
else
echo ${line}
fi
done < ${file} |
Le if regarde si le 3e caractère de ${line} est '-', le elif regarde si le premier caractère est un chiffre. J'ai bien essayé quelque chose comme: if [ ${line:0:1} = "-" ], mais j'obtiens l'erreur: line 11: [: =: unary operator expected.
Merci d'avance pour tout indice qui me fera avancer dans ma quête du savoir :)