Link Search Menu Expand Document

Часть 6.2

С помощью каких символов можно заменить команду test?

  • Команду test нельзя заменить символами
  • {}
  • ()
  • []

Сопоставьте команды с выполняемыми функциями

   
[ -d bar ] Проверка существования директории bar
[ -e bar ] Проверка существования файла bar
[ 'bar' = $bar ] Сравнение строки bar и значения переменной bar
[ ЦЕЛОЕ1 -lt $bar ] ЦЕЛОЕ1 меньше $bar
[ ЦЕЛОЕ1 -gt $bar ] ЦЕЛОЕ1 больше $bar
[ ЦЕЛОЕ1 -eq $bar ] ЦЕЛОЕ1 равно $bar
[ ЦЕЛОЕ1 -ne $bar ] ЦЕЛОЕ1 не равно $bar
[СТРОКА1 = СТРОКА2] Строки совпадают
[СТРОКА1 != СТРОКА2] Строки не совпадают

В результате выполнения скрипта

#!/bin/bash
count=11
if [ $count -ge 42 ]
then
echo "Достаточно."
else
echo "Мало."
fi

на экран будет выведено

  • Достаточно.
  • Мало.

#!/bin/bash
a=3
b=4
if [ $a -lt $b ]
then
let c=b-a
else
let c=a+b
fi
echo $c

Какое число будет выведено на экран в результате выполнения скрипта?

Ответ: 1


Необходимо вывести все целые числа в порядке от 10 до 1.

for i in {10..1}; do echo $i; done;

Нужно завершить цикл while, как только $i превысит 11.

#!/bin/bash
i=1
while [ $i -le 11 ]
do
 let i=i+1
done

Нужно завершить цикл until, как только j станет меньше 3.

#!/bin/bash
j=9
until [ $j -lt 3 ]
do
 let j=j-1
done

Вычислите сумму ряда чисел от a до b. Например, от 1 до 10:

sum = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +10

Числа a и b будут переданы строкой на stdin, и разделены пробелом. Ответ необходимо вывести в stdout. Вызов встроенных командных оболочек из скрипта невозможен.

#!/bin/bash
read -r a b # Читаем переменные, переданные на стандартный ввод
let sum=0
for i in `seq $a $b`
do
  let sum=sum+i;
done
echo $sum;

Часть 6.1 Часть 6.3