Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 从循环生成文件_Bash - Fatal编程技术网

Bash 从循环生成文件

Bash 从循环生成文件,bash,Bash,如何编写一个脚本来创建一个名为post data.txt的文件,其中包含3000条json数据记录,如下所示: {"firstName":"random_string_of10_characters","lastName":"random_string_of10_characters","email":"test+1@domain.com"} {"firstName":"random_string_of10_characters","lastName":"random_string_of10_c

如何编写一个脚本来创建一个名为
post data.txt
的文件,其中包含3000条json数据记录,如下所示:

{"firstName":"random_string_of10_characters","lastName":"random_string_of10_characters","email":"test+1@domain.com"}
{"firstName":"random_string_of10_characters","lastName":"random_string_of10_characters","email":"test+2@domain.com"}
{"firstName":"random_string_of10_characters","lastName":"random_string_of10_characters","email":"test+3@domain.com"}
...
{"firstName":"random_string_of10_characters","lastName":"random_string_of10_characters","email":"test+3000@domain.com"}
这是我到目前为止试过的

#!/bin/bash
file_location=/home/test/$1.json
if [ -e $policy ]; then
  echo "File $1.json already exists!"
else
  cat > $file_location <<EOF
{"firstName":"x","lastName":"y","email":"test@domain.com"}
EOF
fi
#/bin/bash
文件位置=/home/test/$1.json
如果[-e$保单];然后
echo“文件$1.json已经存在!”
其他的

cat>$file\u location您可以使用以下脚本执行此操作:

#!/bin/bash

file=post_data.json

name() {
    cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n 1
}

exec > "$file"
echo "{"

for i in {1..3000}; do
    echo "{\"firstName\": \"$(name)\", \"lastName\": \"$(name)\", \"email\": \"test+${i}@domain.com\"},"
done

echo "}"
以下是文件内容:

{
{"firstName": "R0b24KRMCX", "lastName": "H4RpNLUMM0", "email": "test+1@domain.com"},
{"firstName": "WcThrrFUht", "lastName": "zEgMb2mMva", "email": "test+2@domain.com"},
{"firstName": "3NBRZPOeT0", "lastName": "fvuNtmhh7x", "email": "test+3@domain.com"},
...
{"firstName": "I8QD9sr8ke", "lastName": "Inbb4cUKqQ", "email": "test+3000@domain.com"},
}

所以你真的要问两个问题:1)如何生成随机字符串?2) 如何增加变量?请把你的帖子限制在一个问题上。不过,你做过研究吗?这应该很容易找到答案。顺便说一句,你的脚本可能需要一些清理。查看基本建议。@TimJohnson:cat
命令应该做什么?它希望从标准输入中获得一些内容,并将其复制到json文件中。每次编写
>$file
,它都会在命令开始时重新打开文件,完成后将其关闭。这意味着您的循环将重新打开(并关闭)文件3000次!只要打开它一次<脚本顶部的code>exec>“$file”将重定向那里的所有标准输出。另外,请注意,没有狭隘、具体重点的问题通常最好不要回答。请参阅的“回答问题”部分。如何生成随机字符串是一个问题,它已经存在于我们的知识库中。如何增加计数器?同样地,一个问题,一个重复的问题。因此,这个问题有资格在多个计数上关闭(在“帮助中心定义”标准之外,从“如何回答”的底部项目符号链接)。等等,不是窄焦点?我从字面上详细说明了样本数据问题的一个确切例子,以及我用有限的技能自己能做些什么。建议问多个问题是没有意义的,因为一个技能有限的人可能希望对一个感知到的简单问题有一个整体解决方案,而不需要从大量的帖子中找到答案。我不明白你的逻辑。“可能会有帮助吗?”蒂姆·约翰逊在你的帖子上写道。另见。公平地说,这不是一个可怕的问题,只是不够集中。谢谢你,并感谢你的洞察力。我会尽量集中精力,可能会参考我找到的其他链接