我在Linux上創建了一個簡單的bash腳本來創建隨機文件。我通過文件名和文件大小的腳本是這樣的: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)
我現在要做的是使用各種文件大小的foreach文件名。我的命令就不是這個樣子:
./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命令,但沒有任何工作。
你所的方式選擇構造參數 ... ...不適合簡單的shell編程。嘗試使用 ......改爲。 –
Phil
感謝您的建議!馬上試試@ Tiago的回答。 – Andrej
你原來的劇本很奇怪。將循環移出循環會更典型,並執行:fileSize = $ 1;轉移; for fileName; do dd if =/dev/urandom of = $ oriDir/$ fileName.mp4 bs = 1048576 count = $ fileSize;完成 –