1行に複数のコマンドを実行する

1行に複数のコマンドを実行する

1行に2つのステップを実行したい。

twinkle  -c

それから

call  sip:[email protected] 

出力は次のとおりです。

ここに画像の説明を入力してください。

私はこれらの2つのステップを1行で実行したいので、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]

しかし、彼らはすべて次のような答えをしました。ここに画像の説明を入力してください。

同じ船上に置く方法はないでしょうか?

編集する:2番目のコマンドはTwinkleの代わりにbashで実行されます。 ここに画像の説明を入力してください。

編集する私はそれをしようとし、しばらく動作し、自動的に閉じた(点滅をオフにしてbashに戻ります)。通話中は点滅し続ける必要があります。 printf %s\\n 'call sip:[email protected]' |twinkle -cここに画像の説明を入力してください。

答え1

これを行うにはいくつかの方法があります。

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

このオプションを使用すると、最初のコマンドがエラーなしで終了すると、2番目のコマンドが実行されます。それ以外の場合、2番目のエントリは実行されません。

twinkle  -c ; call  sip:[email protected]

この場合、最初のコマンドがエラーで終わるかどうかに関係なく、最初のコマンドの後に2番目のコマンドが実行されます。

修正する:私はあなたが次のようなものを探していると思います。

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明示的に読むことの1つであれば、/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]                     

関連情報