использование для эха без аргументов в сценариях оболочки

У меня есть следующий сценарий bash, с которым я столкнулся в Интернете, который печатает набор мощности для определенных строк элементов.

p() { [ $# -eq 0 ] && echo || (shift; p "$@") | while read r ; do echo -e "$1 $r\n$r"; done } 

после первого && есть echo которое не имеет никаких аргументов.

Вот код для его проверки:

 p $(echo -e "1\n2\n3") 

  • Почему printh bash быстрее, чем / usr / bin / printf?
  • Возможно одновременное использование скобок (перестановки) и расширения массива?
  • Есть ли какие-то подводные камни для переопределения ls?
  • Трубопроводы, рабочие места и процессы в Zsh
  • В bash, как я могу удалить псевдоним без выхода из системы?
  • Почему встроенные времена не работают в трубопроводе?
  • Поймите команду `compgen` builtin
  • linux как cd к родительской папке, если она перемещается через символическую ссылку
  • One Solution collect form web for “использование для эха без аргументов в сценариях оболочки”

    Он предназначен для форматирования.

     $ p() { [ $# -eq 0 ] && echo || (shift; p "$@") | > while read r ; do echo -e "$1 $r\n$r"; done } $ p $(echo -e "1\n2\n3") 1 2 3 2 3 1 3 3 1 2 2 1 $ p $ 

    Обратите внимание на пустую строку между одним p и следующей подсказкой. Это echo .

    Здесь это с большей удобочитаемостью:

     p() { if [ $# -eq 0 ]; then echo else (shift; p "$@") | while read r; do echo -e "$1 $r\n$r"; done fi } 

    Причина, по которой вы это указали, не сработала без этого, потому что имеет значение, что есть какая-то команда, так как в противном случае логика нарушается (хотя, как бы то ни было, логика странная).

    Interesting Posts

    удалить содержимое с начала на первую пустую строку

    Экран не может выполнить «Myscript.sh»: нет такого файла или каталога

    Как включить службу только в том случае, если она установлена ​​в Puppet?

    Есть ли способ фильтрации и печати определенного шаблона без повторения кода?

    Arch Linux, монтируйте диски с помощью thunar, без пароля

    Ошибочные результаты с обнаружением хоста с использованием nmap

    Есть ли способ изменить настройки отображения KDE4 из командной строки?

    Почему цитаты сохраняются в строковых переменных, когда они окружены одинарными кавычками?

    ssh и запустить скрипт на удаленном хосте и ответить ответ автоответ

    Почему мой графический рабочий стол работает на TTY1

    Как открыть порт в начале процесса загрузки, чтобы разблокировать LUKS через SSH

    Проверьте, является ли каталог точкой монтирования

    Загрузите Linux Mint с USB в режиме устаревания

    Невозможно использовать /dev/usbdevX.X как последовательный порт?

    Инструменты, которые перечисляют прототипы в .so-библиотеке

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