首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过shell脚本无休止地输入

如何通过shell脚本无休止地输入
EN

Stack Overflow用户
提问于 2019-03-23 18:33:51
回答 1查看 171关注 0票数 0

我正在尝试使用shell脚本来生成我的Kafka主题的数据。

首先,我编写了一个外壳脚本run_producer.sh

代码语言:javascript
运行
复制
#!/bin/sh

./bin/kafka-avro-console-producer --broker-list localhost:9092 --topic AAATest2 \
  --property "parse.key=true" \
  --property "key.separator=:" \
  --property key.schema='{"type":"string"}' \
  --property value.schema='{"type":"record","name":"myrecord","fields":[{"name":"measurement","type":"string"},{"name":"id","type":"int"}]}' 

它要求您在执行run_producer.sh时在命令行中输入类似"key1":{"measurement": "INFO", "id": 1}的字符串,并且您可以根据需要输入任意数量的字符串。

我写了另一个脚本add_data.sh

代码语言:javascript
运行
复制
#!/bin/sh

s="\"key1\":{\"measurement\": \"INFO\", \"id\": 1}"
printf "${s}\n${s}\n" | ./run_producer.sh

它可以输入字符串2次,或者通过在printf中添加"${s}\n“来输入更多,但它是有限的和愚蠢的。

我想让它无休止地输入字符串,直到我停止它。我如何使用shell脚本做到这一点?

如果你能告诉我如何使字符串不同(不同的数据),我将非常感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-23 18:41:50

您可以使用yes "$s"为您的脚本生成无穷无尽的输入。但是,你所说的“以不同的方式制作字符串”是什么意思呢?将足以对一些随机数据使用无限循环,例如

代码语言:javascript
运行
复制
while true; do s="\"key1\":{\"measurement\": \"INFO\", \"id\": $RANDOM}"; echo $s; done

或者您需要以其他方式修改它?

man bash

代码语言:javascript
运行
复制
   RANDOM Each time this parameter is referenced, a random integer between 0 and 32767 is generated.  The sequence of random numbers may  be  initialized by assigning a value to RANDOM.  If RANDOM is unset, it loses its special properties, even if it is subsequently reset.

您可以将其与任何其他方法组合使用,如:"key_${RANDOM}"或选择任何其他方法,如https://gist.github.com/earthgecko/3089509https://unix.stackexchange.com/questions/230673/how-to-generate-a-random-string

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55312802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档