한 줄에 여러 명령 실행

한 줄에 여러 명령 실행

한 줄에 두 단계를 실행하고 싶습니다.

twinkle  -c

그 다음에

call  sip:[email protected] 

출력은 다음과 같습니다.

여기에 이미지 설명을 입력하세요.

이 두 단계를 한 줄로 수행하고 싶어서 and and and를 시도했습니다.twinkle -c && call sip:[email protected]twinkle -c call sip:[email protected]twinkle -c ; call sip:[email protected]twinkle -c --immediate --call sip:[email protected]

그러나 그들은 모두 다음과 같은 대답을 했습니다.여기에 이미지 설명을 입력하세요.

같은 선상에 놓을 수 있는 방법은 없을까요?

편집하다:두 번째 명령은 Twinkle 대신 bash에서 실행됩니다. 여기에 이미지 설명을 입력하세요.

편집하다나는 그것을 시도했고 잠시 동안 작동했다가 자동으로 닫혔습니다 (깜박임을 끄고 bash로 돌아갑니다). 통화 중에는 계속 깜박여야 합니다. printf %s\\n 'call sip:[email protected]' |twinkle -c여기에 이미지 설명을 입력하세요.

답변1

이를 수행할 수 있는 방법은 몇 가지뿐입니다.

twinkle  -c && call  sip:[email protected]

이 옵션을 사용하면 첫 번째 명령이 오류 없이 끝나면 두 번째 명령이 실행됩니다. 다른 경우에는 두 번째 항목이 실행되지 않습니다.

twinkle  -c ; call  sip:[email protected]

이 경우 첫 번째 명령이 오류로 끝나는지 여부에 관계없이 첫 번째 명령 다음에 두 번째 명령이 실행됩니다.

고쳐 쓰다:나는 당신이 다음과 같은 것을 찾고 있다고 생각합니다.

twinkle -c --immediate --call sip:[email protected]

~에서twinkle매뉴얼 페이지:

--call <address>  
Instruct Twinkle to call the address. When Twinkle is already running, this will instruct the running process to call the address. The address may be a full or partial SIP URI. A partial SIP URI will be completed with the information from the user profile.
A subject may be passed by appending '`?subject=<subject>`' to the address.  
Examples: `twinkle --call 123456 twinkle --call sip:[email protected]?subject=hello`

--immediate
This option can be used in conjunction with `--call` or `--cmd` It indicates the the command or call is to be performed immediately without asking the user for any confirmation.

답변2

twinkle표준 입력을 받아 명령을 실행하는 것 같아요 . 그래서...

printf %s\\n 'call  sip:[email protected]' | cat - /dev/tty |twinkle -c

...그렇게 할 수 있기를 바랍니다. 대신 twinkle명시적으로 읽는 것 중 하나라면 /dev/tty다음을 수행할 수 있습니다.

printf %s\\n 'call  sip:[email protected]' | cat - /dev/tty | 
luit -- twinkle -c

...또는 "아마도" script또는 screen"대신에"를 사용하세요 luit.

이전 방법이 확실히 효과가 있으므로 다음 셸 함수를 사용하면 명령줄에서 실행하는 것이 더 쉬워질 수 있습니다. 하지만 이 답변의 두 방법 모두 해킹이라는 점에 유의해야 합니다. 원래는 다른 답변을 편집하여 포함하기 전에 이 글을 썼습니다 --call. 몇 시간 후 다른 답변에 대한 의견이 작동하지 않는다고 제안했을 때 삭제를 취소했습니다. 그리고 그것이 도움이 될 것이라고 생각했습니다. 하지만 나라면 알아내려고 노력할 텐데다른 대답은 작동하지 않습니다.

그럼에도 불구하고 쉘 기능은 다음과 같습니다.

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

... call sip:모든 인수의 접두사를 지정하고 twinkle의 표준 입력에 인쇄합니다. 인수를 제공한 순서대로 처리되며 추측한 대로 연속적으로 많은 호출이 실행됩니다. 마지막 호출이 끝나면 다음 호출이 시작됩니다.

예를 들어 프롬프트에서 호출할 수 있습니다.

twinksip [email protected]                     

관련 정보