2012-03-02 14 views
0

特定の場所に出力フォルダを作成するスクリプト(first.sh)があります.2番目のスクリプト(second.sh)にはこの出力フォルダの場所が必要ですデータを処理する必要があります。1つのスクリプトで作成された出力フォルダを処理する方法

first.shスクリプトは、ユーザーのニーズに応じて(ユーザーが設定したパスごとに)出力フォルダーを生成することに注意してください。

これで、first.shスクリプトによって生成された出力フォルダのパスを見つけるためにsecond.shスクリプトが必要です。次に、データを処理するために入力する必要がありますか?

上記の問題のロジックが必要です。出力フォルダのパスは常に変更され、second.shスクリプトは正確なパスと出力フォルダを見つけることができるはずです。

first.sh/helps.Plz

second.sh それは

はそれを希望 "/追加/サブ/ output_folder" 場所を見つける必要があり(ユーザが出力パスを決定)/サブ/ output_folderを追加助けて。

+0

Do first。sh'と 'second.sh'は常に次々に実行されますか? – kev

答えて

0

両方のスクリプトが行うことの詳細を参考にしてください。

これは最も簡単なオプションであるため、second.shフォームfirst.shをランチ/ディナーできないと仮定します。

これに近づく方法の1つは、second.shがアクセスできるfirst.shによってフォルダの場所をプロパティファイルに出力することです。

0

あなたがfirst.shからsecond.shを呼び出すことが許可されている場合は、例えば、あなたが$1を使って、そのパスへのアクセスを得ることができ

first.sh $YOUR_OUTPUT_PATH 

を行うことができます

echo $1 
0

あなたのコードを呼び出すされる方法に応じて、あなたはおそらく1およびスクリプト2は、情報を交換することができますどのスクリプトで原始的な手段を生成するために、$ PPIDを使用することができます。

$PPIDは、スクリプトの親プロセスIDです。次の例では、両方scripta.shと同じ値を参照scriptb.sh:

scripta.sh:

#!/bin/sh 
datadir=/tmp/$PPID.tmp 
mkdir -p $datadir 
sleep $((RANDOM % 60)) 
echo Some data from $PPID/$$ on $(tty) >$datadir/testfile.txt_tmp 
mv $datadir/testfile.txt_tmp $datadir/testfile.txt 

scriptb.sh

#!/bin/sh 
datadir=/tmp/$PPID.tmp 
timeout=60 
while (((i=i+1) < timeout)); do 
    cat $datadir/testfile.txt 2>&- && break 
    sleep 1 
done 

この例では、最大のために保持しますデータが表示されるまでに約60秒かかり、何人のユーザーがアクティブであっても機能します。 2つ以上の別々の端末で以下を実行して、これをテストする必要があります。

scripta.sh & 
scriptb.sh & 

datadirディレクトリをクリーンアップするには、別のスクリプト(または夜間処理)が必要です。

私はこれらのファイルの保持ゾーンとして/ tmpを推奨しません。たくさんのスペースがある場所にバッファディレクトリを作成します。

関連する問題