Я не могу понять результаты скрипта bash

Вот сценарий:

echo '1 2 3 4 5 6' | while read abc ;do echo result: $c $b $a; done 

Результат 3 4 5 6 2 1 Может кто-нибудь объяснить, почему?

  • ничего не записывается в текстовый файл, если вы запускаете из cron
  • текст для создания файла xls
  • Как определить, куда перенаправляется ссылка
  • sh работает нормально на моем компьютерном терминале, но создает ошибки на удаленном сервере
  • Bash здесь - документы и линии shebang
  • распечатать определенную строку из нескольких файлов
  • Строка, сравниваемая с подстановочными знаками
  • Как я могу выполнить эхо-вывод команды, которая ничего не возвращает / null?
  • 2 Solutions collect form web for “Я не могу понять результаты скрипта bash”

    Окончательные данные по строке будут помещены в последнюю переменную, т. Е. c содержит «3 4 5 6». Поэтому вы, вероятно, хотите:

     echo '1 2 3 4 5 6' | while read abc rest ;do echo result: $c $b $a; done 

    и игнорировать переменный rest .

    read разбивает каждую строку стандартного ввода на слова так же, как ваша команда делает, когда вы пишете команды. После этого :

    первое слово присваивается первому имени, второму слову второму имени и т. д., с остальными словами и их промежуточными разделителями, назначенными на фамилию

    В вашем случае a присваивается значение 1, b присваивается значение 2, а c получает оставшуюся часть строки «3 4 5 6». Вы распечатываете c ( 3 4 5 6 ), затем b ( 2 ), затем a ( 1 ), давая вам вывод, который вы видите.

    В этом случае цикл ничего не делает, так как есть только одна строка для чтения из вашего первого echo .

    Interesting Posts

    Как скомпилировать общую библиотеку в AIX

    Ошибка во время обновления yum

    Ограничение размера файла в соответствии с учебником Роберта Лава

    Согласование шаблонов и удаление этого шаблона с помощью sed

    Двойная система загрузки, перемещение Монетного двора Linux на SSD

    Невозможно выполнить загрузку при замене карты Adaptec SCSI

    Завершение Bash висит на всех входах

    Как получить функцию getopts при вызове другой функции внутри файла

    Регуляторы громкости наушников Громкость динамика в Acer NE46RS1 Проблема с компрессией ноутбука и громкости также

    каковы некоторые из них. (один период) и .. (двойной период) в командной строке оболочки

    Как установить redis 3.0.7 на Debian 8

    uboot написать ядро ​​в mmc раздел

    Удаленный мониторинг сетевого трафика серверов

    Как заставить OpenVPN автоматически подключаться к шлюзу в любое время

    проблема с разрешением logadm в Solaris

    Linux и Unix - лучшая ОС в мире.