Bonjour,
Selon ce qu’affirme mon cours, l’option -a en bash permet d’assembler deux conditions avec un « et » logique :
Les expressions entre crochets peuvent également contenir un ! (négation). Finalement, des expressions logiques peuvent être groupées par des parenthèses précédées d’un backslash, et connectées par des -a (AND) et des -o (OR).
Je ne comprends pas pourquoi mon code ne fonctionne pas :
#!/bin/bash
cut_str='mon premier test'
i='0'
while [ \(-n ${cut_str}) -a \($i -lt '99') ]; do
echo ${cut_str%% *}
cut_str=${cut_str#* }
let 'i += 1'
done
echo 'i : ' $i
./script.sh: ligne 6: erreur de syntaxe près du symbole inattendu « ) »
./script.sh: ligne 6: while [ \(-n ${cut_str}) -a \($i -lt '99') ]; do
+0
-0