Как выполнить команду несколько раз в терминале с / без нескольких незначительных изменений?

Предположим, что я хочу выполнить команду ls десять раз (несмотря на то, что она нецелесообразна, поскольку она будет отображать только содержимое каталога 10 раз), есть ли эквивалент записи следующего:

for (i = 0, i < 10, i++) {

     ls

}

Теперь предположим, что я хочу выполнить Java-программу десять раз, каждый раз с другим входным файлом. Есть ли эквивалент написанию следующего:

fileList = [input1, input2, ....., input10]

for (i = 0, i < 10, i++) {

     java myProgram fileList[i]

}

Я предполагаю, что есть какой-то язык, на котором я мог бы писать такие скрипты. Я пробовал искать онлайн, но мои знания являются базовыми, и я не мог найти ничего, что я понял.

1
задан 22 June 2014 в 02:45

1 ответ

Этот язык является самой программой, в которой вы связываете команду.

Запрос командной строки предоставляется оболочкой. Оболочка Ubuntu по умолчанию - Bash (вы должны начать с учебников и обратиться к руководству для справки).

Чтобы выполнить несколько связанных команд последовательно, вы можете использовать командную строку . Вы можете сохранить список имен файлов в переменной массива.

file_list=(input1 input2 … input10)
for file in "${file_list[@]}"; do
  java myProgram "$file"
done

Элементы синтаксиса, которые я использовал:

Назначение переменной массива: variable=(element1 element2 element3) (нет пробелов вокруг [ f3]) Использование переменной массива: "${variable[@]}" (да, это странно, по историческим причинам) Использование строковой переменной: "$variable" Для цикла: for variable in list; do instructions; done (; эквивалентно новой строке)
2
ответ дан 24 May 2018 в 06:25

Другие вопросы по тегам:

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