Инструменты пользователя

Инструменты сайта


cycle_bash

Циклы и переменные в bash

1. FOR

for i in список слов
do
тело цикла, $i устанавливается в следующий элемент списка
done
for i (Подразумевается список всех аргументов командного файла, т. е. $*)
do
тело цикла, $i устанавливается в следующий аргумент
done

Пр. выводим содержимое текущей папки

for i in * ;do echo $i ; done


2.WHILE

while команда
do
тело цикла выполняется, пока команда возвращает true
done

Пр. прибавляет 1 к числу бесконечно.

s=1;while [ "1" -gt "0" ];do ((s+=1)); echo ${s};done

3.UNTIL

until команда
do
тело цикла выполняется, пока команда возвращает false
done

Пр. прибавляет 1 к числу бесконечно.

s=1;until [ "0" -gt "1" ];do ((s+=1)); echo ${s};done
#!/bin/bash
k=1
echo "Я цикл While"
while [ "$k" -lt "4" ]
do
sleep 1
echo "Я здесь ${k} сек."
((k+=1))
done
echo "Пока!"

k=1
echo "Я цикл Until"
until [ "$k" -gt "3" ]
do
sleep 1
echo "Я здесь ${k} сек."
((k+=1))
done
echo "Пока!"

echo "Я цикл For"
for k in `seq 3`
do
sleep 1
echo "Я здесь ${k} сек."
done
echo "Пока!"

4. CASE

case i in 
    1) echo"1"
    2) echo"2"
    3) echo"3"
    *) echo"something else"
esac

5. Переменные

Переменная Значение
$var значение var; если var не определена, то ничего
${var} аналогично; удобно использовать, если за именем переменной следует буквенно-цифровое выражение
${var-thing} значение var, если она определена; в противном случае thing; $var не изменяется
${var=thing} значение var, если она определена; в противном случае thing, $var устанавливается в thing
${var?message} значение var, если она определена. Иначе вывести message и выйти из оболочки. Если сообщение пусто, вывести: var: parameter not set
${var+thing} thing, если var определена, иначе ничего
cycle_bash.txt · Последние изменения: 2015/09/21 07:54 — sander