シェルスクリプト:バックグラウンドプロセスへの入力の送信

ジェームズ

次のスクリプトを使用してフォルダーを監視していますが、サイズが変更されてファイルが存在しない場合は、スクリプトが実行されます。

#!/usr/bin/sh
SCRIPT="dim_import/xdir"

while true;
do
    size=$(du -s dim_import | cut -b 1-2)
    if [ $size -gt 32 ]; then
        if [ ! -f files ]; then
          $SCRIPT
        fi
    fi
    sleep 2
done

私はそのようにスクリプトを実行します

>watcher &

問題は、ウォッチャープログラム内で実行されるスクリプトが入力を必要とすることです。プロンプトをエコーアウトしますが、入力はそのスクリプトではなく、現在のシェルに送信されます。したがって、1234を入力すると、次のようになります。

sh: 1234:  not found.

入力を正しい場所に送信するにはどうすればよいですか?

私は多くの異なる方法を試しましたが、私がこれを行っている独特の方法のためにどれもうまくいかないようです。私はまた、より良い方法/回避策を受け入れています。スクリプトには、引数として送信したい入力を処理する機能もあります。

編集:私は62918のような番号を送信しようとしています

編集:私もこのようなことをすることができますが、同じエラーが発生します:

    SCRIPT="dim_import/xdir"

    while true;
    do
        size=$(du -s dim_import | cut -b 1-2)
        if [ $size -gt 32 ]; then
            if [ ! -f files ]; then
              echo "SR Number: "; read srNum
              $SCRIPT $srNum
            fi
        fi
        sleep 2
    done

注:私はBashを使用していません。私はShを使用しています。

ジェームズ

多くの調査の結果、制限がないと不可能であると判断しました。しかし、私は望ましい回避策ではないことを発見しました。

基本的に、名前付きパイプ(「.in」と呼ばれる)を作成して情報を送信します。タイプ「i [入力]」を実行するだけの関数を作成しました

SCRIPT=".dim_import/xdir"

while true;
do
    size=$(du -s .dim_import | cut -b 1-2)
    if [ $size -gt 32 ]; then
        if [ ! -f ~/files ]; then
          echo "SR Number (i [number]): "; 
          read srNum < ~/.in
          $SCRIPT $srNum
          sleep 10
          ~/scripts/listSR
        fi
    fi
    if [ ~/ ]
    sleep 5
done

プロファイル機能:

function i
{
  set +u
  echo $1 > ~/.in
  set -u
}

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

バックグラウンドシェル関数による子プロセスのリストの取得

分類Dev

バックグラウンドスクリプトへのメッセージの送信

分類Dev

シェルスクリプトの独自のコマンドプロンプトへの入力

分類Dev

シェルスクリプトでバックグラウンドプロセスをフォアグラウンドに戻すクリーンな方法

分類Dev

シェルスクリプトのバックグラウンドプロセスはEOFを受け取ります

分類Dev

スプラッシュスクリーン-ラベルとプログレスバーへのアクセス

分類Dev

バックグラウンド プロセスのシグナル処理

分類Dev

iOS:バックグラウンドプロセスとシングルトン

分類Dev

バックグラウンドプロセスパイプ入力

分類Dev

シェルのCtrl-CからSIGINTを受信するバックグラウンドプロセス(postgresql)

分類Dev

JQueryAJAX-テキストボックスとドロップブラウンボックスへの入力

分類Dev

PHPスリープ関数のバックグラウンドプロセス

分類Dev

シェルスクリプトからのバックグラウンドrsyncとpid

分類Dev

シェル スクリプトでバックグラウンド ジョブの数を制御する方法

分類Dev

プロセスステートメントへの入力パラメータのバッファリング

分類Dev

別のバックグラウンドプロセスのバックグラウンドスクリプトからのpidof

分類Dev

Pubnub: オークション アプリ開発のバックグラウンド プロセス

分類Dev

別のシェルスクリプト内のバックグラウンドでのインタラクティブシェル

分類Dev

バックグラウンドJavaサービスアプリケーションへのシンプルな送受信インターフェース

分類Dev

バックグラウンドでのsemaphore_trackerプロセスによるマルチプロセッシングのフリーズ

分類Dev

d3js v5 + topojsonv3バックグラウンドでのオブジェクトのプロパティへのアクセス

分類Dev

StaticInjectorError-ドロップダウンリストへの入力

分類Dev

Swift2.0のサーバーへのリクエストJSONを使用したバックグラウンドプロセス

分類Dev

バックグラウンドで起動されたプロセスを表示するシェルスクリプト

分類Dev

CakeResqueを使用したバックグラウンドプロセスとしての電子メール送信

分類Dev

バックグラウンドジョブから送信されたUSR1シグナルが、Bashスクリプトでの完了を待機している親シェルプロセスによって確実に受信されないのはなぜですか?

分類Dev

シェルスクリプトjavaへの入力

分類Dev

Linuxのバックグラウンドプロセス

分類Dev

Javaのバックグラウンドプロセス

Related 関連記事

  1. 1

    バックグラウンドシェル関数による子プロセスのリストの取得

  2. 2

    バックグラウンドスクリプトへのメッセージの送信

  3. 3

    シェルスクリプトの独自のコマンドプロンプトへの入力

  4. 4

    シェルスクリプトでバックグラウンドプロセスをフォアグラウンドに戻すクリーンな方法

  5. 5

    シェルスクリプトのバックグラウンドプロセスはEOFを受け取ります

  6. 6

    スプラッシュスクリーン-ラベルとプログレスバーへのアクセス

  7. 7

    バックグラウンド プロセスのシグナル処理

  8. 8

    iOS:バックグラウンドプロセスとシングルトン

  9. 9

    バックグラウンドプロセスパイプ入力

  10. 10

    シェルのCtrl-CからSIGINTを受信するバックグラウンドプロセス(postgresql)

  11. 11

    JQueryAJAX-テキストボックスとドロップブラウンボックスへの入力

  12. 12

    PHPスリープ関数のバックグラウンドプロセス

  13. 13

    シェルスクリプトからのバックグラウンドrsyncとpid

  14. 14

    シェル スクリプトでバックグラウンド ジョブの数を制御する方法

  15. 15

    プロセスステートメントへの入力パラメータのバッファリング

  16. 16

    別のバックグラウンドプロセスのバックグラウンドスクリプトからのpidof

  17. 17

    Pubnub: オークション アプリ開発のバックグラウンド プロセス

  18. 18

    別のシェルスクリプト内のバックグラウンドでのインタラクティブシェル

  19. 19

    バックグラウンドJavaサービスアプリケーションへのシンプルな送受信インターフェース

  20. 20

    バックグラウンドでのsemaphore_trackerプロセスによるマルチプロセッシングのフリーズ

  21. 21

    d3js v5 + topojsonv3バックグラウンドでのオブジェクトのプロパティへのアクセス

  22. 22

    StaticInjectorError-ドロップダウンリストへの入力

  23. 23

    Swift2.0のサーバーへのリクエストJSONを使用したバックグラウンドプロセス

  24. 24

    バックグラウンドで起動されたプロセスを表示するシェルスクリプト

  25. 25

    CakeResqueを使用したバックグラウンドプロセスとしての電子メール送信

  26. 26

    バックグラウンドジョブから送信されたUSR1シグナルが、Bashスクリプトでの完了を待機している親シェルプロセスによって確実に受信されないのはなぜですか?

  27. 27

    シェルスクリプトjavaへの入力

  28. 28

    Linuxのバックグラウンドプロセス

  29. 29

    Javaのバックグラウンドプロセス

ホットタグ

アーカイブ