Linux上でランダムなファイルを作成するための簡単なbashスクリプトを作成しました。私はこのようなスクリプトにファイル名やファイルサイズを渡します。Bash Script + Shift複数の変数
./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)
私が今やるべきことは、様々なファイルサイズforeachファイル名を使用することです。スクリプトは以下の2つのファイル生成されます
./createFiles 5 2 filename1 filename2
:
filename1.mp4 (size 5)
filename2.mp4 (size 2)
オプションを、スクリプトは次の操作を行うことができる必要があります:場合にはより多くのファイル名があります私のコマンドは以下のようになるでしょう与えられたfilesizes、それだけで、残りのすべてのファイル名の最後のファイルサイズを取る必要があります。
./createFiles 5 2 filename1 filename2 filename3
が生成されます。
filename1.mp4 (size 5)
filename2.mp4 (size 2)
filename3.mp4 (size 2)
私はshiftを使って遊び、別のshitコマンドを追加しようとしましたが、何も働かなかった。
にあなたがきた道を、このリストを反復処理することができます引数を構造化するために選択された ... ...単純なシェルプログラミングには役立たない。代わりに ...を使用してください。 –
Phil
提案していただきありがとうございます! @ティアゴの答えを今すぐ試してください。 – Andrej
元のスクリプトは非常に奇妙です。ループからシフトを外して行うのがより一般的です:fileSize = $ 1;シフト; for fileName; if =/dev/urandom = $ oriDir/$ fileName.mp4 bs = 1048576 count = $ fileSizeの場合はddを実行します。完了 –