case ${hostname%"servername0"[123]} in
("$hostname") ! :;;
(foo|bar) ;;
(*) ! :;; esac
Просто grep
для символа, отличного от пробела:
grep -q '[^[:space:]]' < "$file" &&
printf '%s\n' "$file contains something else than whitespace characters"
Если вы хотите проверить наличие пустого содержимого файла в условии if [[... ]]
, окружите grep-z $( grep... )
(без -q):
if [[ -z $(grep '[^[:space:]]' $file) ]] ; then
echo "Empty file"
...
fi
Мне пришлось использовать это, чтобы избежать следующей ошибки при запуске:
$ [[ grep -q '[^[:space:]]' $file ]]
-bash: conditional binary operator expected
-bash: syntax error near `-q'
Аналогично другим ответам, но с использованием отрицанияgrep -q
if ! grep -q '[^[:space:]]' "$file"; then
echo "file is empty"
else
echo "File has data"
fi