(A) Pour diviser une phrase dans ses mots (séparés par un espace), vous pouvez simplement utiliser la valeur par défaut FI en utilisant
array=( $string )
Exemple de l'exécution de l'extrait de code suivant
#!/bin/bash
sentence="this is the \"sentence\" 'you' want to split"
words=( $sentence )
len="${#words[@]}"
echo "words counted: $len"
printf "%s\n" "${words[@]}" ## print array
seront de sortie
words counted: 8
this
is
the
"sentence"
'you'
want
to
split
Comme vous pouvez le voir, vous pouvez utiliser des guillemets simples ou doubles sans aucun problème
Notes:
-- c'est fondamentalement la même de mob's réponse, mais de cette façon, vous stocker le tableau pour tout autre besoin. Si vous avez seulement besoin d'une seule boucle, vous pouvez utiliser sa réponse, qui est une ligne plus courte :)
-- veuillez vous référer à cette question pour d'autres méthodes pour diviser une chaîne basée sur délimiteur.
(B) pour rechercher un caractère dans une chaîne, vous pouvez également utiliser une expression régulière.
Exemple, pour vérifier la présence d'un espace de caractère que vous pouvez utiliser:
regex='\s{1,}'
if [[ "$sentence" =~ $regex ]]
then
echo "Space here!";
fi