Linux Bash中的一行命令

时间:2019-03-08 11:31:53

标签: linux bash command exe

我正在尝试编写一个基本的单行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文件的输入似乎效果不佳。 我能做什么?我的错误在哪里?

谢谢。

4 个答案:

答案 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