Я интересен в направлении вывода от двух команд до переменной. Я не хочу, чтобы вывод был отображен на экране, но вместо этого присвоен переменной в рамках моего сценария так, чтобы я мог использовать его снова.
то, что я делаю, получает размер файла из каталога с помощью команд, замеченных ниже:
ls -l /var/spool | wc -c
Эта команда получает меня размер файла в байтах и отображает вывод как целое число. Я интересуюсь получением этого целого числа, присвоенного переменной моей симпатии так, чтобы я мог сравнить его с другой переменной позже
Это, кажется, не работает:
size = ls -l /var/spool | wc -c
Перенаправление работало бы?
Как это....
ls -l /var/spool | wc -c > size
Так или иначе я хочу, чтобы этот числовой вывод был присвоен переменной и не отображен на экране.
Любые предложения являются очень встречаемыми с одобрением!
Это кажется довольно простым.
romano@RRyS:~$ size=$(ls -l /var/spool | wc -c)
romano@RRyS:~$ echo $size
476
синтаксис оболочки $(command)
выполняется command
и возвращает стандартный вывод: просто сохраните его в переменной.
Ваша команда:
ls -l /var/spool | wc -c > size
создаст файл, названный size
в текущем каталоге (содержащий число и новую строку).
Я предпочитаю решение, предлагаемое ответ Rmano , но если Вы хотите использовать только перенаправление:
read size < <(ls -l /var/spool | wc -c)