GNU/Linux >> Tutoriels Linux >  >> Linux

Teste si la chaîne contient des caractères non blancs dans Bash

Vous pouvez utiliser la syntaxe regex de bash.

Il nécessite que vous utilisiez des crochets doubles [[ ... ]] , (plus polyvalent, en général).
La variable n'a pas besoin d'être entre guillemets. La regex elle-même ne doit pas être cité

for str in "         "  "abc      " "" ;do
    if [[ $str =~ ^\ +$ ]] ;then 
      echo -e "Has length, and contain only whitespace  \"$str\"" 
    else 
      echo -e "Is either null or contain non-whitespace \"$str\" "
    fi
done

Sortie

Has length, and contain only whitespace  "         "
Is either null or contain non-whitespace "abc      " 
Is either null or contain non-whitespace "" 

Beaucoup de ces réponses sont beaucoup plus complexes ou beaucoup moins lisibles qu'elles ne devraient l'être.

[[ $string = *[[:space:]]* ]]  && echo "String contains whitespace"
[[ $string = *[![:space:]]* ]] && echo "String contains non-whitespace"

Linux
  1. Comment vérifier si Bash a la vulnérabilité Shellshock ?

  2. Comment vérifier si la chaîne contient une sous-chaîne dans Bash

  3. (Dé/Dé)compresser une chaîne en bash ?

  4. Convertir une chaîne de texte en bash en tableau

  5. Que fait 'bash -c' ?

Chaînes de concaténation bash

Comment vérifier si une chaîne contient une sous-chaîne dans Bash

Remplacement de chaîne dans Bash

Script Bash - Instructions conditionnelles

Script Bash - Manipulation de chaînes

Bash Beginner Series #6 :Opérations sur les chaînes dans Bash