Вопросы с тегом «for»

Тег для обозначения любых вопросов, касающихся циклов for

170
Почему зацикливание на выводе find плохо работает?

Этот вопрос вдохновлен Почему использование цикла оболочки для обработки текста считается плохой практикой? Я вижу эти конструкции for file in `find . -type f -name ...`; do smth with ${file}; done а также for dir in $(find . -type d -name ...); do smth with ${dir}; done используется здесь почти...

76
Какова цель ключевого слова «do» в Bash для циклов?

Какова цель doключевого слова в forсинтаксисе цикла Bash ? Для меня это кажется излишним. for i in `seq 1 2`; do echo "hi"; done Почему синтаксис не такой? for i in `seq 1 2`; echo "hi"; done Я уверен, что это действительно соответствует цели. Я просто хочу...

65
В bash возможно ли использовать целочисленную переменную в цикле управления цикла for?

У меня есть следующий скрипт bash: #!/bin/bash upperlim=10 for i in {0..10} do echo $i done for i in {0..$upperlim} do echo $i done Первый forцикл ( без переменной upperlimв контроле цикла) работает нормально, а второй forцикл ( с переменной upperlimв контроле цикла) - нет. Есть ли способ, которым...

24
В сценарии оболочки bash, написание цикла for, который перебирает строковые значения

В bash я знаю, что можно написать forцикл, в котором некоторая переменная управления цикла iперебирает заданные целые числа. Например, я могу написать скрипт оболочки bash, который печатает целые числа от 1 до 10: #!/bin/bash for i in {1..10} do echo $i done Можно ли вместо этого перебрать...

24
Как заменить AND (&&) в цикле for?

Я хотел бы найти эквивалент cmd 1 && cmd 2 && ... && cmd 20 но с командами, выраженными внутри forцикла, как for i in {1..20} do cmd $i done Что бы вы предложили изменить во втором выражении, чтобы найти эквивалент...

16
Как избежать ошибок из-за нерасширенной звездочки

В bash я часто использую циклы for, такие как for file in *.type; do sommecommand "$file"; done; выполнить операцию для всех подходящих файлов *.type. Если в рабочих каталогах не найдено ни одного файла с таким окончанием, звездочка не раскрывается, и обычно я получаю сообщение об ошибке, в котором...

14
Перебрать папку и список файлов

У меня есть папка с именем sample и в ней 3 файла. Я хочу написать скрипт оболочки, который будет читать эти файлы в папке с образцами и публиковать их на сайте HTTP с помощью curl. Я написал следующее для перечисления файлов внутри папки: for dir in sample/*; do echo $dir; done Но это дает мне...

13
$ {! FOO} и zsh

${!FOO}выполняет двойную подстановку bash, то есть принимает (строковое) значение FOO и использует его в качестве имени переменной. zshне поддерживает эту функцию. Есть ли способ сделать эту работу такой же в bashи zsh? Фон: У меня есть список переменных среды, как PATH MAIL EDITOR и хотите сначала...

12
Многовариантный для циклов

Есть ли способ указать несколько переменных (не только целые числа) в forциклах в bash? У меня может быть 2 файла, содержащие произвольный текст, с которым мне нужно было бы работать. Что мне функционально нужно, так это: for i in $(cat file1) and j in $(cat file2); do command $i $j; done Есть...

11
Перебирать файлы, исключая каталоги

Мне нужен мой скрипт, чтобы что-то делать с каждым файлом в текущем каталоге, исключая любые подкаталоги. Например, в текущем пути есть 5 файлов, но 1 из них является папкой (подкаталогом). Мой скрипт должен активировать команду, указанную в качестве аргумента при запуске указанного скрипта. Т.е....

9
В цикле над массивом добавьте элемент в массив

У меня есть проблема с для цикла в Bash. Например: у меня есть массив ("etc" "bin" "var"). И я перебираю этот массив. Но в цикле я хотел бы добавить некоторое значение в массив. Например array=("etc" "bin" "var") for i in "${array[@]}" do echo $i done Это отображает etc bin var(конечно, на...

8
Bash: несколько для циклов в фоновом режиме

Это правильный способ запустить несколько последовательных обработок в фоновом режиме? for i in {1..10}; do for j in {1..10}; do run_command $i $j; done & done; Все jдолжны быть обработаны после друг друга для данного i, но все iдолжны быть обработаны...

7
для цикла не работает в Bash

У меня есть код ниже, чтобы заменить некоторые strigns в нескольких файлах, но цикл for проверяет первый файл и не выполняет сценарий perl. ниже мой код if [ -f zebu.work.post_opt/ZEBU_CTO_FT_MOD.v ] then for file in $(./zebu.work.post_opt/ZEBU_CTO_FT_MOD*); do perl -i -p -e 's/input/inout/g'...

6
Как мы можем использовать несколько переменных в одном цикле for в сценарии оболочки?

Я реализую как код ниже, используя для цикла, но неправильный вывод после запуска сценария. for i in `awk -F"|" '{print $1}' $INPUTFILE`, j in `awk -F"|" '{print $2}' $INPUTFILE` do echo $i:$j done Пожалуйста, помогите мне использовать несколько переменных в одном цикле for в скрипте...