Обновлено: Пересмотр для многострочных значений $page, спасибо @Wildcard!
Вы были очень близки ко второй строке. Если ваша строка 1 действительно работает, то для второй строки вы должны попробовать:
times="$(echo "$page" | wc -l)"
$(
и )
- это подстановка команды, эквивалентная тому, что мы делали с обратными кавычками (в man bash
они называются обратными кавычками
), но я предпочитаю $(
)
, потому что их легче заметить в коде$page
не передаст ничего в wc -l
$page
как команду, а затем передать вывод этой команды в wc -l
, так что если $page
содержит 5 bla
, он будет думать, что 5 bla
- это команда. Это приведет к ошибкам, подобным тем, которые вы обнаружили, увидев command not found
echo
переменную $page
$page
содержит многострочные значения, echo $page
по умолчанию приведет к потере этих строк, они просто станут пробелами$page
, заключив их в кавычки: echo "$page"
Итак, используя echo "$page"
, wc -l
сможет правильно получить значение $page
.