Выполните несколько команд на одной строке

[1175458] Если вы используете команду [1175856]mail[1175857] (также известную как [1175858]mailx[1175859]), вы должны быть в состоянии добавить это к [1175860]~/. mailrc[1175861] файл для каждого пользователя:[12182]mutt[1175863] следует тому же синтаксису, за исключением того, что [1175864]~/.muttrc[1175865] является редактируемым файлом.[1175461].
1
09.02.2015, 01:11
2 ответа

полагаю, что twinkle принимает stdin и выполняет команды. Так что...

printf %s\\n 'call  sip:in06khattab@sip.linphone.org' | cat - /dev/tty |twinkle -c

... будем надеяться, что сделаем это. Если вместо этого twinkle является одним из тех, которые явно читают /dev/tty, то, вероятно, вы можете сделать....

printf %s\\n 'call  sip:in06khattab@sip.linphone.org' | cat - /dev/tty | 
luit -- twinkle -c

... или использовать, возможно, скрипт или экран вместо luit.

Так как первый метод, очевидно, работает, то следующая функция оболочки, возможно, сделает более простой запуск из командной строки. Обратите внимание, что оба метода в этом ответе являются своего рода взломами - сначала я написал это, а затем удалил после того, как другой ответ был отредактирован и включал --call. Я недооценил его только спустя несколько часов, когда комментарии к другому методу указывали на то, что он не работает, и я подумал, что это может еще помочь. На моем месте я бы попытался выяснить , почему другой ответ не работает.

Тем не менее, функция оболочки:

twinksip() while [ -n "$1" ]
           do    printf 'call sip:%s\n' "$1" |
                 cat - /dev/tty | twinkle -c || return
           shift;done

... которая подготовит префикс вызова call sip: ко всем своим аргументам и распечатает их на twinkle stdin. Он обработает по порядку столько аргументов, сколько вы ему дадите, что, как я полагаю, сделает много вызовов подряд - начиная со следующего, когда закончится последний.

Вы бы вызвали его из подсказки вроде:

twinksip in06khattab@sip.linphone.org                     
1
27.01.2020, 23:17

У вас есть только пара способов сделать это:

twinkle  -c && call  sip:in06khattab@sip.linphone.org

с этой опцией, вторая команда выполняется, когда первый конец без ошибок. В другом случае второй никогда не выполняет.

twinkle  -c ; call  sip:in06khattab@sip.linphone.org

В этом случае вторая команда выполняется после первого, независимо от ошибки первого конца или без него.

Обновление : Я верю, что вы ищете что-то вроде этого:

twinkle -c --immediate --call sip:in06khattab@sip.linphone.org

из Twinkle Ручная страница:

 - Вызов 
Проинструктируйте мерцание, чтобы позвонить по адресу. Когда мерцание уже работает, это будет проинструктировать рабочий процесс называть адрес. Адрес может быть полным или частичным SIP URI. Частичный SIP URI будет укомплектован информацией из профиля пользователя. Субъект может быть передан путем добавления ««? »= ` 'по адресу. Примеры: `Twinkle --Call 123456 Twinkle --Call (скрыт) --немедленный Эта опция может использоваться в сочетании с `--call` или` --cmd` - это указывает, что команда или вызов должен быть выполнен немедленно, не просив пользователя для любого подтверждения.
4
27.01.2020, 23:17

Теги

Похожие вопросы