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

У меня есть следующий сценарий 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") 

  • Когда оболочка запускает встроенную систему, а сигнал генерируется клавиатурой, что будет обрабатывать сигнал?
  • Почему `` `встроенная оболочка и` [[`ключевое слово оболочки?
  • Как выполнить встроенную команду оболочки с помощью find?
  • Поймите команду `compgen` builtin
  • AIX - использовать встроенные функции ksh для освобождения памяти, когда fork невозможно
  • Почему обязательные утилиты POSIX не встроены в оболочку?
  • Как оболочка решает, какую из ключевых слов, встроенных и внешних команд запускать?
  • Команда Whatis (встроенная оболочка для исполняемых программ)
  • 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 } 

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

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