Нет никакой разницы между первым и вторым заданием, или с var=$(echo foo)
, что касается стандартного вывода.
Во второй инструкции:
ElapsedTime=$(echo "$time" | tail -c 23)
Команда standard output, которая является стандартным выводом конвейера, в данном случае tail
stdout, присваивается переменной content и не выводится на экран.
С другой стороны, если одна из внутренних команд выведет что-то в свой стандартный поток ошибок, это будет выведено на экран, поскольку вы не перенаправляете stderr.
Обратите внимание, что echo "$time"
ненадежен. Я бы рекомендовал printf "%s\n" "$time"
, чтобы избежать неожиданных побочных эффектов значения time
.
tail -c -number
- это POSIX, поэтому я бы не ожидал, что эта команда не сработает.
вы также должны указать «--block 4k» для резервного устройства
make-bcache --block 4k -B /dev/sdx1