Expectシェルスクリプトで生成されたプロセスの終了コードを取得する方法

ANR:

EXPECTスクリプトを実行するスクリプトと、終了コードを含む生成されたプロセスを実行しようとしています。しかし、生成されたプロセスの終了コードをメインスクリプトに取得できません。私は成功として常にゼロになっています。

スクリプトは次のとおりです。

 [Linux Dev:anr ]$ cat testexit.sh
 #!/bin/bash
 export tmp_script_file="/home/anr/tmp_script_temp.sh"
 cp /home/anr/tmp_script $tmp_script_file
 chmod a+x $tmp_script_file
 cat $tmp_script_file
 expect << 'EOF'
 set timeout -1
 spawn  $env(tmp_script_file)
 expect {
 "INVALID "  { exit 4 }
 timeout     { exit 4 }
 }
 EOF
 echo "spawned process status" $?
 rm -f $tmp_script_file
 echo "done"

生成されたスクリプト:

 [Linux Dev:anr ]$ cat tmp_script
 exit 3

Expectスクリプトの実行:

 [Linux Dev:anr ]$ ./testexit.sh
 exit 3
 spawn /home/anr/tmp_script_temp.sh
 spawned process status 0
 done

問題は、生成された出口の戻りコードを取得してスクリプトを期待できないことです。生成されたスクリプトの終了コード3をメインスクリプトにしたいのですが、メインスクリプトは終了コード3で終了する必要があります。

生成された終了コードをメインスクリプトに取得するのを手伝ってください。

ANR:

グレンの助けを借りて、私は解決策を得ました...そして私の最終的なスクリプトは::

期待されるスクリプトは

 [Linux Dev:anr ]$ cat testexit.sh
 #!/bin/bash
 export tmp_script_file="/home/anr/tmp_script_temp.sh"
 cp /home/anr/tmp_script $tmp_script_file
 chmod a+x $tmp_script_file
 cat $tmp_script_file
 expect << 'EOF'
 set timeout -1
 spawn  $env(tmp_script_file)
 expect {
 "INVALID "  { exit 4 }
 timeout     { exit 4 }
 eof
 }

 foreach {pid spawnid os_error_flag value} [wait] break

 if {$os_error_flag == 0} {
     puts "exit status: $value"
     exit $value
 } else {
     puts "errno: $value"
     exit $value
 }
 EOF
 echo "spawned process status" $?
 rm -f $tmp_script_file
 echo "done"

生成されたスクリプト:

 [Linux Dev:anr ]$ cat tmp_script
 exit 3

Expectスクリプトの実行:

 [Linux Dev:anr ]$ ./testexit.sh
 exit 3
 spawn /home/anr/tmp_script_temp.sh
 exit status: 3
 spawned process status 3
 done

グレンにもう一度感謝します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Expectスクリプトで生成されたプロセスの終了コードを返す方法は?

分類Dev

期待:生成されたプロセスから終了コードを取得する方法

分類Dev

シェルスクリプトでフォークされた子プロセスからPIDを取得する方法

分類Dev

コマンドが独立したプロセスであるのに、シェル スクリプトで使用されたときに他のプロセスがスリープしないように見えるのはなぜですか?

分類Dev

シェルスクリプトからpytest終了コードを取得する

分類Dev

ネストされたループでシェルスクリプトを終了する

分類Dev

シェルアウトされたコマンドがゼロ以外の終了コードで戻ったときにRubyスクリプトを失敗させるにはどうすればよいですか?

分類Dev

ミドルウェアLaravelでリクエストされたコントローラーの名前とアクションを取得する方法

分類Dev

ミドルウェアLaravelでリクエストされたコントローラーの名前とアクションを取得する方法

分類Dev

マルチプロセッシングのプールimap_unorderedを使用するときに生成されたスレッドを強制終了する方法

分類Dev

終了したプロセスの終了コードを取得する

分類Dev

makeコマンドを実行した後、リモートマシンで実行されているシェルスクリプトが終了します

分類Dev

シェルスクリプト内でcatコマンドを終了する方法

分類Dev

Red HatLinuxシェルスクリプトで指定されたユーザーのデスクトップフォルダーを取得する方法

分類Dev

SSHのコマンドのいずれかがゼロ以外の値を返した場合にシェルスクリプトを終了する方法

分類Dev

cronを介して実行されているシェルスクリプトでプロセスを強制終了する方法は?

分類Dev

シェルスクリプトlinux bashにある中断されたプロセスの数を数える方法

分類Dev

コマンドが失敗した場合にゼロ以外のコードで最後にシェルスクリプトを終了する

分類Dev

別のシェルスクリプトによって開始されたシェルスクリプトで `pwd`を取得する方法

分類Dev

シェルスクリプトでGradle終了コードをキャプチャする方法は?

分類Dev

サンプルの生成されたプロセスは生きており、コードを終了します

分類Dev

Django-属性値でグループ化されたクエリセットのリストを取得する方法

分類Dev

同じスクリプトからコンパイルされたacプログラムからシェルスクリプトを終了する

分類Dev

ストアドプロシージャで指定されたテーブルのnullをチェックするSQLServerスクリプトの作成

分類Dev

PowerShellスクリプトから起動された子プロセスを強制終了するタスクスケジューラを取得する方法

分類Dev

シェルスクリプトで整列された列を生成する

分類Dev

シェルでトリガーされた並列プロセスの終了タイムスタンプを特定します

分類Dev

シェルスクリプトでAWKコマンドの動的NRパラメータを取得する方法

分類Dev

複数のクライアントシェルを持つErlang-生成されたプロセスが「io」モジュールでハングする

Related 関連記事

  1. 1

    Expectスクリプトで生成されたプロセスの終了コードを返す方法は?

  2. 2

    期待:生成されたプロセスから終了コードを取得する方法

  3. 3

    シェルスクリプトでフォークされた子プロセスからPIDを取得する方法

  4. 4

    コマンドが独立したプロセスであるのに、シェル スクリプトで使用されたときに他のプロセスがスリープしないように見えるのはなぜですか?

  5. 5

    シェルスクリプトからpytest終了コードを取得する

  6. 6

    ネストされたループでシェルスクリプトを終了する

  7. 7

    シェルアウトされたコマンドがゼロ以外の終了コードで戻ったときにRubyスクリプトを失敗させるにはどうすればよいですか?

  8. 8

    ミドルウェアLaravelでリクエストされたコントローラーの名前とアクションを取得する方法

  9. 9

    ミドルウェアLaravelでリクエストされたコントローラーの名前とアクションを取得する方法

  10. 10

    マルチプロセッシングのプールimap_unorderedを使用するときに生成されたスレッドを強制終了する方法

  11. 11

    終了したプロセスの終了コードを取得する

  12. 12

    makeコマンドを実行した後、リモートマシンで実行されているシェルスクリプトが終了します

  13. 13

    シェルスクリプト内でcatコマンドを終了する方法

  14. 14

    Red HatLinuxシェルスクリプトで指定されたユーザーのデスクトップフォルダーを取得する方法

  15. 15

    SSHのコマンドのいずれかがゼロ以外の値を返した場合にシェルスクリプトを終了する方法

  16. 16

    cronを介して実行されているシェルスクリプトでプロセスを強制終了する方法は?

  17. 17

    シェルスクリプトlinux bashにある中断されたプロセスの数を数える方法

  18. 18

    コマンドが失敗した場合にゼロ以外のコードで最後にシェルスクリプトを終了する

  19. 19

    別のシェルスクリプトによって開始されたシェルスクリプトで `pwd`を取得する方法

  20. 20

    シェルスクリプトでGradle終了コードをキャプチャする方法は?

  21. 21

    サンプルの生成されたプロセスは生きており、コードを終了します

  22. 22

    Django-属性値でグループ化されたクエリセットのリストを取得する方法

  23. 23

    同じスクリプトからコンパイルされたacプログラムからシェルスクリプトを終了する

  24. 24

    ストアドプロシージャで指定されたテーブルのnullをチェックするSQLServerスクリプトの作成

  25. 25

    PowerShellスクリプトから起動された子プロセスを強制終了するタスクスケジューラを取得する方法

  26. 26

    シェルスクリプトで整列された列を生成する

  27. 27

    シェルでトリガーされた並列プロセスの終了タイムスタンプを特定します

  28. 28

    シェルスクリプトでAWKコマンドの動的NRパラメータを取得する方法

  29. 29

    複数のクライアントシェルを持つErlang-生成されたプロセスが「io」モジュールでハングする

ホットタグ

アーカイブ