Мы знаем , как посчитать количество строк в переменной . Однако, как отмечается в комментариях и ответах, семантика является странной, когда речь идет о пустых переменных, поскольку пустая переменная обычно считается такой же, как непустая переменная без перевода строки:
$ echo -n "" | wc -l
0
$ echo -n "foo" | wc -l
0
$ echo "" | wc -l
1
$ echo "foo" | wc -l
1
не очень хорошо, если вы хотите посчитать количество результатов, возвращаемых другой командой.
Теперь в одном из ответов на этот вопрос предлагается частичный обходной путь:
printf "%s" "$a" | grep -c "^"
, но это не совсем то, что мне нужно, так как она считает непустую переменную, значение которой является новой строкой, с 0 строками.
Мой вопрос: кроме подсчета «регулярно», а затем явной проверки на случай пустоты, есть ли достойный способ получить такой счет в bash?