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

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

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

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

  • Как инвертировать счет, возвращенный из grep?
  • очистка вывода скрипта, так что он спускается, дает имена пакетов и чисто
  • n-factor SSH-аутентификация для CentOS 7
  • Организация одного сценария с помощью другого
  • В чем разница между ] и ?
  • Как эта команда find использует «find ... -exec sh -c» ... «sh {} +» работает?
  • Как ожидать от PID от вызванного процесса?
  • AWK для создания CSV-файла
  • 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

    Получить ссылку на дескриптор файла stdin процесса Node.js, также работать с MacOS

    как надежно определять процессы, используя файлы после `umount -l` на linux

    Как я могу определить, какой драйвер переустанавливать на моем Nvidia Jetson TK1?

    Разница между размером блока и размером файла в квоте

    Настройка ulimit `max open files` для демонтированного мастер-процесса nginx

    Как проверить, какую оболочку я использую в терминале?

    загрузочный раздел почти заполнен в CentOS

    Причины контроля IPC в Linux

    создать raid1 из существующего локального объема lvm

    добавление нового разрешения в настройку нескольких мониторов через xrandr

    Изменение конфигурационных файлов с помощью awk / sed

    что осталось в кеше даже после очистки данных кэша страниц?

    Пакет php5-json разбивает firephp

    ssh-agent не добавляет ключ при запуске графически

    Как разрешить совместное использование для смонтированного тома с помощью командной строки? (2 компьютера Mac)

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