我正在尝试编写一个基本的单行Linux Bash命令, 会将1-1000之间的所有数字作为exe程序的输入。
exe程序如下所示:
please insert 1: 1(wanted input)
please insert 2: 2(wanted input)
.
.
.
.
please insert 1000: 1000(wanted input)
success!
所以我尝试编写此linux bash命令:
for((i=1;i<=1000;i+=1)); do echo "$i"|./the_exe_file; done
但是问题是我的命令在for ...的每个迭代上打开exe文件,这意味着只有第一个输入(1)是正确的。 并且,由于某种原因,提供给exe文件的输入似乎效果不佳。 我能做什么?我的错误在哪里?
谢谢。
答案 0 :(得分:1)
您要求在每次循环迭代中打开exe。您只需要将其打开一次,即可将其带出循环:
for((i=1;i<=1000;i+=1)); do echo "$i"; done | ./the_exe_file
答案 1 :(得分:1)
同样,您可能会发现使用为此目的设计的工具更具可读性。
seq 1 1000 | ./the_exe_file
答案 2 :(得分:1)
尝试
printf '%s\n' {1..1000} | ./the_exe_file
答案 3 :(得分:0)
bash中:
$ for f in {1..1000}; do echo $f; done
进行测试:
$ for f in {1..1000}; do echo $f; done | uniq | wc -l
1000