Я пытаюсь отправить команды на отдельную панель tmux из vim, и я подумал, что проще всего было mkfifo именованный канал /tmp/cmdsи запустить, bash < /tmp/cmdsчтобы прослушивать команды, которые нужно запустить.
Затем я выполняю echo "echo \"hello world\" > /tmp/cmds"тестирование, это работает только для одной команды, и xargs немедленно закрывается. Есть ли способ сохранить это после более чем одной команды?
2 ответа на вопрос
1
johnshen64
это ничем не отличается от запуска xargs в интерактивной оболочке и заканчивается переводом строки, поэтому он завершится и завершится.
Вы должны написать цикл и выполнить для каждой строки ввода из стандартного ввода, таких как
в то время как :; делать xargs </ tmp / cmds; сделанный
не проверено, поэтому вам может понадобиться настроить.
0
William Casarin
Если кому-то интересно, вот скрипт, который я использую для отправки команд из vim:
#!/bin/sh FIFO=$ mkfifo $FIFO &> /dev/null while :; do bash < $FIFO && echo "== OK ==" || echo "!! ERR !!"; done