Однострочная команда в Linux Bash - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь написать простую однострочную команду 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

, но проблема в том, что моя команда ОТКРЫВАЕТ exe-файл на каждой итерации for ..., что означает, что только перваявход (1) правильный.И, по какой-то причине, ввод данных в exe-файл кажется не очень хорошим.А что я могу сделать?Где моя ошибка?

Заранее спасибо.

Ответы [ 4 ]

1 голос
/ 08 марта 2019

Аналогично, вы можете найти более удобочитаемым инструмент, предназначенный для этого.

seq 1 1000 | ./the_exe_file
1 голос
/ 08 марта 2019

Попробуйте

printf '%s\n' {1..1000} | ./the_exe_file
1 голос
/ 08 марта 2019

Вы просили, чтобы exe открывался на каждой итерации цикла.Если вам нужно открыть его только один раз, выведите его из цикла:

for((i=1;i<=1000;i+=1)); do echo "$i"; done | ./the_exe_file
0 голосов
/ 29 июня 2019

В Баш:

$ for f in {1..1000}; do echo $f; done 

для проверки:

$ for f in {1..1000}; do echo $f; done  | uniq | wc -l
1000
...