Команда в переменной влияет на вывод другой переменной при отображении вместе в UNIX

Можно использовать простое для цикла с Bash, Zsh или Ksh93. Следующие работы только начиная с версии 4 (2009) Bash, zsh 4.3.10 (2010) и ksh93r (2006) (хотя {x..y} синтаксис, порожденный в zsh2.6-beta4 в 1995)).

#!/bin/bash
# since Bash v4
for i in {10..100..10}
do
     $path_of_prog/prog $i
done

{$start..$end..$step} часть говорит это $i в запуске, равном $start и $i перейдет в $end. $step сумма с который $i будет увеличен каждый шаг. Таким образом, мы получаем значения 10 20 30 ... 100 для $i.

Вы могли также записать все это в одной строке с

for i in {10..100..10}; do ./prog $i; done

Если у Вас есть более старый Bash и GNU seq доступно, используйте следующие строки

#!/bin/bash
#only for pre Bash v4
for i in $(seq 10 10 100)
do
   $path_of_prog/prog $i
done

или как один лайнер

for i in $(seq 10 10 100);do ./prog $i; done

(вышеупомянутое предполагает, что Вы не изменили $IFS переменная).

3
19.02.2014, 18:48
2 ответа
0
27.01.2020, 21:11

Ваши входные файлы, вероятно, имеют окончания строки CR-NL, поэтому $ res1 возвращает курсор в начало строки, а затем $ res2 перезаписывает его. Запустите свои файлы через dos2unix , чтобы исправить это.

8
27.01.2020, 21:11

Теги

Похожие вопросы