gpt4 book ai didi

linux - Bash 脚本 + 移动多个变量

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:40:58 25 4
gpt4 key购买 nike

我在 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)

我确实尝试过使用 shift 并添加另一个狗屎命令,但没有任何效果。

最佳答案

如果你选择这样的东西

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

你可以成对地遍历这个列表

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

# do some stuff
shift 2
}

关于linux - Bash 脚本 + 移动多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10551122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com