2016-04-19 24 views
-1

シェルスクリプトを使用して、特定のフォルダに30〜130個のファイルをランダムに作成しようとしています。私は長い間シェルで作業していないので、いくつかの間違いを犯している可能性があります。ここに私のコードです:シェルスクリプトはファイルを作成しません

ran=$RANDOM 
while [$ran > 100]; do 
    $ran = $RANDOM 
done 
$ran=$ran+30 
i=0 
while [$i < $ran]; do 
    cat > 'Lobby/data/map_'$i'.dat' 
    $i=$i+1 
done 

あなたは私を助けることができます。私はdebianに取り組んでいます。

+0

実行するとどうなりますか?エラーはありますか?これまでにどのようなデバッグをしましたか?構文エラーが発生すると予想される行がいくつかあります。 – larsks

+0

エラーはありませんでした。私はwhilループが動作しないと思う –

+0

あなたは30のランダムなファイルを作成しようとすることで始まらない。最初に1つのファイルを作成しようとします。そこから作業します。 –

答えて

1

は、この(使用のbash)をお試しください:

#!/bin/bash 
ran=$((RANDOM % 100)) 
ran=$(($ran+30)) 

for ((start = 1; start <= $ran; start++)) 
do 
    touch './Lobby/data/map_'$start'.dat' 
done 

またはSH:

ran=$(($$ % 100)) 
ran=$(($ran+30)) 
i=0 
while [ "$i" -le "$ran" ]; do 
    touch './Lobby/data/map_'$i'.dat' 
    i=$((i + 1)) 
done 

このフォルダに書き込み権限があることを確認してください。 ランダム%100は100までの数値を生成します - 30を加えると30以上130以下でないことを確認しますので、あなたのように追加のチェックをする必要はありません。

よろしくお願いします。 Vedran

+0

エラー:./bw02.sh:19:./bw02.sh:構文エラー:ループ変数のために悪い –

+0

はい...私の悪い - 私はあなたのスクリプトの最初の行を追加しました:#!/ bin/bash –

+0

よく...他のすべてのものは殻に入っていた。ファイルにその両方が含まれている場合、その作業は可能ですか? –

関連する問題