GNU/Linux >> Belajar Linux >  >> Linux

Uji apakah string memiliki karakter non spasi di Bash

Anda dapat menggunakan sintaks regex bash.

Anda harus menggunakan tanda kurung siku ganda [[ ... ]] , (lebih serbaguna, secara umum).
Variabel tidak perlu dikutip. Regex itu sendiri tidak boleh dikutip

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

Keluaran

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

Banyak dari jawaban ini jauh lebih rumit, atau jauh lebih sulit dibaca, dari yang seharusnya.

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

Linux
  1. Bagaimana cara memeriksa apakah Bash memiliki Kerentanan Shellshock?

  2. Tes Shell Untuk Menemukan Pola Dalam String?

  3. Perintah Untuk Mencetak Hanya 3 Karakter Terakhir Dari Sebuah String?

  1. Cara Memisahkan String dalam Skrip Bash

  2. Cara Memeriksa apakah String Berisi Substring di Bash

  3. (Un/De) kompres string di bash?

  1. pengenal yang diharapkan sebelum konstanta string

  2. Konversikan string teks dalam bash ke array

  3. menggunakan acak untuk menghasilkan string acak di bash