0

私はシェルスクリプトに慣れていないので、それを行う方法や可能かどうかはわかりません。リンクやアドバイスをいただければ幸いです。

私がやりたいことは次のとおりです。

  • ファイル、単純なテキスト ファイルを作成します EX:

    param1 (ランダム値)

    randomvalue は、生成される乱数です。

  • 作成したばかりのファイルでプログラムを実行し、ファイルに出力します

    ./program filewejustcreated > A

プログラムはすでに作成されており、ファイル名をパラメーターとして取ります。そのことについて心配する必要はありません。

  • 作成したばかりのファイルで別のプログラムを実行します。プログラムは既に存在し、ファイルに出力します

./先ほど作成した別のプログラム ファイル > B

  • A、B で diff コマンドを実行する

    差分AB

diff が返すものを表示...

ありがとう

[編集] シェルを使用しています: tcsh

4

3 に答える 3

3

あなたはすでにほとんどスクリプトを書いています。唯一欠けているのは乱数です。Perlでやります。これはsh(またはbash; Linux / Unixシステムを使用していると仮定しています)での簡単で汚いソリューションです。

#!/bin/sh
perl -e 'print "TheWord (", int(rand(1000)), ")\n"' > tempfile
./program tempfile > A
./Anotherprogram tempfile > B
# rm tempfile  # this would delete 'tempfile' if uncommented
diff A B

これをファイル (たとえば、script.sh) に保存し、シェルで実行します。

chmod +x script.sh

実行可能にする

./script.sh

それを実行します。

于 2008-12-01T05:34:54.917 に答える
3

tcshで乱数を生成する機能がよくわかりません。ただし、BASH のようなより一般的なシェルでは、変数への参照により、$RANDOM乱数が生成されます。

したがって、シェル スクリプト (BASHここではシェル スクリプト) の内容は次のようになります。

#Pick the first argument to the call as the file name
FILE_NAME=shift
echo "param1 $RANDOM" > $FILE_NAME
./program $FILE_NAME > $FILE1
./Anotherprogram $FILE_NAME > $FILE2
diff $FILE1 $FILE2
于 2008-12-01T05:37:42.197 に答える
0

シェル スクリプトは、ほとんどの場合、仕事を成し遂げる方法でさまざまなプログラムを組み合わせているだけです。シェル スクリプトの世界に入ると、1 つの単純なことだけを実行し、それらを組み合わせてより大きなタスクを実行できるプログラムがたくさんあります。大規模なシェル スクリプトの例は、perl の Configure scriptです。最初の部分では (いくつかのユーモラスなコメントと共に)、cat、true、sh、rm、test、sed、uname、および grep が使用されています。

于 2008-12-01T05:47:46.060 に答える