1

私は時々非常に遅いLinuxサーバーで作業しています。そのため、実行するジョブを追加すると、単純な計算を実行するためだけに数時間待たなければなりません。

次の分析を開始できるかどうか疑問に思っていましたが、前の分析の出力がそこにあるまで待ちます。(2 番目の分析には、最初の分析出力が必要です)

except およびその他のオプションを機能させようとしましたが、まだ成功していません (stackoverflow に関する前の質問で except およびその他のオプションが見つかりました): expect { 'output/analysis_file1.txt' }

どんなアイデア/ヒントも高く評価され、私が割り当てるのに役立ちます.

私が望む唯一のことは、最初のスクリプトのテキスト ファイルが与えられるまで、2 番目のスクリプトを待機させることです。

4 つのスクリプト:1.

#!/bin/bash
#$ -cwd
./script1.sh 

. ./script2.sh $repla

. ./script3.sh $replac

2:

repla=''
for i in 'abcdefghijklmnopqrst'
do
   repla=`echo $i | sed 's/'abc'/'xyz'/g'`
   #echo $repla
done

3:

replac=''
for j in $1
do
   replac=`echo $j | sed 's/'xyz'/'san'/g'`
   #echo $replac
done

4:

replace=''
for h in $1
do
   replace=`echo $h | sed 's/'san'/'sander'/g'`
   #echo $replace
done
4

3 に答える 3

7

いくつかの変更を加えてコアの下で使用できます

#!/bin/bash
while  [  ! -f FILE_NAME ]
  do
     sleep SOME_SECONDS
  done
echo "file found"
于 2013-04-04T13:16:01.917 に答える
1

複数のスクリプトを個別に実行する代わりに、次のmaster script runnerようなスクリプトを作成する必要があります。

#!/bin/bash

# sanity checks & parse arguments

./script1
ret=$?
# check for return value of script1 using $ret variable

./script2
ret=$?
# check for return value of script2 using $ret variable

./script3
ret=$?
# check for return value of script3 using $ret variable

...
# do cleanup and reporting
于 2013-04-04T13:25:29.123 に答える