Rsync над пользовательской оболочкой с fifo

Я пытаюсь использовать rsync над пользовательской оболочкой, созданной с помощью fifo. Однако я не могу найти способ справиться с этим:

Сценарий initsh для имитации стандартной оболочки по fifo:

 #!/bin/bash rm fin mkfifo fin rm fout mkfifo fout rm ferr mkfifo ferr rm farg mkfifo farg read arg <farg cat fin | /bin/bash -i -c "$arg" 1>fout 2>ferr 

Этот скрипт работает хорошо, вы можете проверить его, запустив (cat fout &) && echo ls > farg

Сценарий rsh для перехода к rsync:

 #!/bin/bash shift; cat fout & cat ferr 1>&2 & echo "$@" | tee -a out > farg cat | tee -a out > fin sleep 2 kill %% exit 

Способ вызова rsync:

 rsync -e './rsh' user@fakehost:/ 

Он работает хорошо, когда вы запускаете echo ./rsh , вы получили оболочку, такую ​​как rsync. Но когда rsync запускает его, он не закрывает stdin, и поэтому он ждет остановки (EOF) «cat | …». Я также пробовал с exec 0<>fin но он вообще не работает.

Есть ли уловка, чтобы правильно закрыть ручку? Или у вас есть другой подход?

One Solution collect form web for “Rsync над пользовательской оболочкой с fifo”

вы можете дождаться окончания команды cat fout :

 #!/bin/bash shift; cat fout & foutid=$! cat ferr 1>&2 & echo "$@" | tee -a out > farg cat | tee -a out > fin <&0 & wait $foutid sleep 2 kill %% exit 
  • Как установить переменную среды оболочки из файла autotools .am?
  • Цитирование через файл с использованием столбца
  • выйти из сценария оболочки из подоболочки
  • linux, эквивалентный команде AIX proctree, чтобы показать все дочерние и родительские процессы заданного PID
  • BASH: использование awk для фильтрации уникальных строк приводит к 0 массиву длины
  • Сколько пользователей поддерживает поддержку Linux в одно и то же время через SSH?
  • как grep для c: \
  • Разбиение файла на две части на основе определенной строки
  • переименовать несколько файлов с помощью команды rename?
  • Почему моя команда не работает при сглаживании?
  • Невозможно сохранить значение ascii в переменной
  • Interesting Posts

    Как определить определенный порядок для значков лотков в i3

    Как очистить вход в Bash

    LVM-устройства, не отображаемые в initrd, но работающие с загрузкой

    Как использовать pacman на контурном изображении Arch для другой архитектуры?

    Как построить Live Debian CD / USB в Windows, загрузочный в режиме EFI?

    Не удается правильно использовать мышь при запуске vim в tmux

    Отключение сети на Raspbian

    Как решить проблему диспетчера окон в Linux Mint 14 Xfce после установки LXDE?

    сценарий оболочки для создания каталогов, подкаталогов и файлов по шаблону

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

    Нечеткое взаимодействие между функциями fstab auto и пользователем

    Отключить запрос пароля KWallet в Arch Plasma 5

    xsetroot, xterm и twm не обнаруживаются при запуске XRDP / Xvnc (в Cent OS)

    Как заставить консоль поддерживать китайский язык в CentOS 7?

    Разрешения на создание некоторых (но не всех) файлов, видимых непосредственно под каталогом

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