1

Linuxでランダムなファイルを作成するための簡単なbashスクリプトを作成しました。次のように、ファイル名とファイルサイズをスクリプトに渡します。

./createFiles 5 filename1 filename2

*5=ファイルサイズ

私のコードは次のようになります。

#! /bin/bash

oriDir=files/ori
fileSize=$1
fileName=$2


# Create files
for fileName do

    dd if=/dev/urandom of=$oriDir/$2.mp4 bs=1048576 count=$fileSize

    # Shift through filenames
    shift 1

done

出力は期待どおりです。私のディレクトリに2つの新しいファイル:

filename1.mp4 (size 5)
filename2.mp4 (size 5)

私が今やろうとしていることは、ファイル名ごとにさまざまなファイルサイズを使用することです。私のコマンドは次のようになります。

./createFiles 5 2 filename1 filename2

スクリプトは2つのファイルを生成します。

filename1.mp4 (size 5)
filename2.mp4 (size 2)

オプションで、スクリプトは次のことを実行できる必要があります。指定されたファイルサイズよりも多くのファイル名がある場合は、残りのすべてのファイル名の最後のファイルサイズを取得する必要があります。

./createFiles 5 2 filename1 filename2 filename3

生成されます:

filename1.mp4 (size 5)
filename2.mp4 (size 2)
filename3.mp4 (size 2)

私はシフトをいじって別のたわごとコマンドを追加しようとしましたが、何も機能しませんでした。

4

1 に答える 1

4

このようなものを選択した場合

./script file1 size1 file2 size2 ... fileN sizeN

このリストをペアで繰り返すことができます

limit=$[ $#/2 ]; 
for((i=0;i<$limit;i++)){
file=$1 
size=$2

# do some stuff
shift 2
} 
于 2012-05-11T12:22:33.813 に答える