[英]How to detect empty string which may include white spaces in bash?
我想通過檢測空字符串和白字符串
#!/etc/bash
test_word=' ' # test_word includes only one space
if [[ ${test_word} =~ ^\s*$ ]]; then
echo "detect"
else
echo "not detect"
fi
結果是
not detect
這是行不通的。 請讓我知道如何檢測到它。 或者請讓我知道一些選擇
if [[ -z ${var} ]]
\\s
與BASH中的空格不匹配(它將僅與單個字母s
匹配),您可以使用POSIX屬性[[:blank:]]
來匹配空格或制表符:
if [[ ${test_word} =~ ^[[:blank:]]*$ ]]; then
echo "detect"
else
echo "not detect"
fi
這是一種非正則表達式的檢測方法:
if [[ -z ${test_word//[[:blank:]]/} ]]; then
echo "detect"
else
echo "not detect"
fi
${test_word//[[:blank:]]/}
將刪除$test_word
中的所有空格, -z
將檢查給定字符串的長度是否為零。
這是另一種檢測到它的extglob
方法(感謝@gniourf_gniourf):
if [[ ${test_word} == *([[:blank:]]) ]]; then
echo "detect"
else
echo "not detect"
fi
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.