я есть следующие строки в Баш скрипт под Linux:Как петля в скрипте bash?
...
mkdir max15
mkdir max14
mkdir max13
mkdir max12
mkdir max11
mkdir max10
...
как синтаксис для ввода их в цикле, так что я не должен писать числа (15,14 ..)?
я есть следующие строки в Баш скрипт под Linux:Как петля в скрипте bash?
...
mkdir max15
mkdir max14
mkdir max13
mkdir max12
mkdir max11
mkdir max10
...
как синтаксис для ввода их в цикле, так что я не должен писать числа (15,14 ..)?
Используйте for-loop
for a in `seq 10 15`; do mkdir max${a}; done
seq
будет генерировать числа от 10
к 15
.
EDIT: Я привык к этой структуре с многих лет. Однако, когда я наблюдал другие ответы, это правда, что {START..STOP}
намного лучше. Теперь я должен привыкнуть к созданию каталогов гораздо приятнее: mkdir max{10..15}
.
for i in {1..15} ; do
mkdir max$i
done
Если вы хотите, чтобы значения 1..9 были заполнены 0, вы используете {00..15} в bash4 – pepoluan
с Баш, нет необходимости использовать внешние команды, как seq
для генерации чисел.
for i in {15..10}
do
mkdir "max${i}"
done
или просто
mkdir max{01..15} #from 1 to 15
mkdir max{10..15} #from 10 to 15
говорят, что если ваши номера генерируются динамически, вы можете использовать стиль C цикл
start=10
end=15
for((i=$start;i<=$end;i++))
do
mkdir "max${i}"
done
никаких петель, необходимых для выполнения этой задачи:
mkdir max{15..10} max0{9..0}
... но если вам нужен цикл const ruct, вы можете использовать один из:
for i in $(seq [ <start> [ <step> ]] <stop>) ; do
# you can use $i here
done
или
for i in {<start>..<stop>} ; do
# you can use $i here
done
или
for ((i=<start> ; i < stop ; i++)) ; do
# you can use $i here
done
или
seq [ <start> [ <step> ]] <stop> | while read $i ; do
# you can use $i here
done
Обратите внимание, что этот последний не будет держать значение $ i за пределами цикла, из-за |
, который запускает подклассу
Помните, что это работает только для bash. – enzotib