Перейти к содержанию

Упражнения (Questions)

Контрольные вопросы

  1. Какой из следующих элементов обязательно должен присутствовать в начале каждого сценария оболочки? A. #Comment B. #!/bin/bash C. exit 0 D. #begin script

  2. Вы создали сценарий оболочки в вашем домашнем каталоге с именем myscript. Как вы можете его выполнить? (Выберите два ответа.) A. Введите /bin/bash ~/myscript в командной строке. B. Введите myscript в командной строке. C. Выберите «Компьютер» | «Выполнить» на графическом рабочем столе, затем введите ~/myscript и нажмите «Выполнить». D. Введите run ~/myscript в командной строке. E. Введите chmod u+x ~/myscript, затем введите ~/myscript в командной строке.

  3. Какая команда создаст новую переменную с именем TOTAL и назначит ей тип «целое число» (integer)? A. variable –i TOTAL B. declare –i TOTAL C. declare TOTAL –t integer D. TOTAL=integer

  4. Из сценария оболочки вам нужно вывести на экран текст «Hello world». Какая команда это сделает? A. echo "Hello world" B. read Hello world C. writeln "Hello world" D. print "Hello world"

  5. Из сценария оболочки вам нужно предложить пользователям ввести их номер телефона. Введённое значение необходимо поместить в переменную $PHONE. Какая команда это выполнит? A. read "What is your phone number?" $PHONE B. read $PHONE C. read PHONE D. ? "What is your phone number?" PHONE

  6. Какую команду можно использовать внутри конструкции if/then/else для проверки истинности указанного условия? A. eval B. == C. test D. <>

  7. Какая команда в конструкции if/then/else сценария оболочки вычислит True, если переменная num1 меньше переменной num2? A. eval num1 < num2 B. test num1 < num2 C. test num1 –lt num2 D. test "num1" != "num2" E. eval "num1" != "num2"

  8. В сценарии оболочки вам нужно предложить пользователю выбрать один из семи вариантов, выводимых командой echo. Какая управляющая конструкция лучше всего подходит для обработки ввода пользователя и выполнения соответствующего набора команд? A. Цикл while B. Цикл for C. Цикл until D. if/then/else E. case

  9. Какая управляющая конструкция продолжает обработку снова и снова до тех пор, пока указанное условие не примет значение «ложь»? A. Цикл while B. Цикл for C. Цикл until D. if/then/else E. case

  10. Какие управляющие конструкции считаются ветвящимися (branching structures)? (Выберите два ответа.) A. Цикл while B. Цикл for C. Цикл until D. if/then/else E. case

  11. Какая управляющая конструкция продолжает обработку снова и снова до тех пор, пока указанное условие остаётся ложным? A. Цикл while B. Цикл for C. Цикл until D. if/then/else E. case

  12. Какая управляющая конструкция выполняет обработку указанное количество раз? A. Цикл while B. Цикл for C. Цикл until D. if/then/else E. case

  13. Рассмотрим следующее использование команды seq: seq 3 9. Какую последовательность чисел сгенерирует эта команда? A. 3, 4, 5, 6, 7, 8, 9 B. 3, 6, 9 C. 1, 4, 7, 10, 13, 16, 19, 22, 25 D. 9, 18, 27

  14. Какую команду можно использовать для вывода указанных столбцов или полей из файла на стандартный вывод, используя символ табуляции в качестве разделителя? A. cut B. pr C. fmt D. sort

  15. Какая команда может обработать текстовый поток и заменить все символы табуляции восемью пробелами? A. cut B. replace –t 8 C. expand D. unexpand

  16. Какая команда может обработать файл или текстовый поток и добавить номер в начало каждой новой строки? A. join B. paste C. fmt D. nl

  17. Вы хотите отправить содержимое файла logfile.txt из текущего каталога команде sort для сортировки строк в алфавитном порядке и отображения результата на экране. Какие команды это сделают? (Выберите два ответа.) A. sort < logfile.txt B. sort logfile.txt C. sort < logfile.txt –o "screen" D. sort < logfile.txt > screen E. sort –n logfile.txt

  18. Вы хотите отобразить на экране шестое, седьмое и восьмое слова в любой строке файла /var/log/messages, содержащей слово «syslog». Какая из следующих команд это сделает? A. cat /var/log/messages | awk '/syslog/ {print $6,$7,$8}' B. cat /var/log/messages | awk '/syslog/ {print 6,7,8}' C. cat /var/log/messages | awk /syslog/ {print $6,$7,$8} D. cat /var/log/messages | awk 'syslog {print 6,7,8}'

  19. Ваше приложение для обработки текстов оставило сотни резервных файлов в разных местах на жёстком диске. Они больше не нужны и занимают много места. Поскольку их очень много, вы не хотите удалять их по одному. Вы попробовали использовать команду find, чтобы передать список резервных файлов (которые все оканчиваются символом ~) команде rm, но список файлов оказался слишком длинным. Что следует предпринять? A. Передать вывод find команде xargs через конвейер. B. Удалять файлы по одному с помощью rm. C. Передать вывод find команде del вместо rm. D. Передать вывод find команде rmdir вместо rm.

  20. Вам нужно найти слово «June» и заменить его словом «July» в файле proj_sched.txt из вашего домашнего каталога, а результат записать в новый файл new_proj_sched.txt. Какая команда это выполнит? A. cat ~/ proj_sched.txt | sed s/June/July/ B. cat ~/ proj_sched.txt | awk s/June/July/ C. cat ~/ proj_sched.txt | awk s/June/July/ 1> new_proj_sched.txt D. cat ~/ proj_sched.txt | sed s/June/July/ 1> new_proj_sched.txt

Ответы

  1. B. Элемент #!/bin/bash обязательно должен присутствовать в начале каждого сценария оболочки bash.

  2. A, E. Вы можете ввести /bin/bash ~/myscript или выполнить chmod u+x ~/myscript, чтобы сделать сценарий исполняемым, а затем запустить его с помощью ~/myscript.

  3. B. Команда declare –i TOTAL создаст переменную TOTAL и назначит ей тип целого числа.

  4. A. Команда echo "Hello world" выведет текст «Hello world» на экран из сценария оболочки.

  5. C. Команда read PHONE в сценарии оболочки поместит введённое пользователем значение в переменную $PHONE.

  6. C. Команда test может использоваться внутри конструкции if/then/else для проверки истинности указанного условия.

  7. C. Команда test num1 –lt num2 вычислит True внутри конструкции if/then/else, если переменная num1 меньше переменной num2.

  8. E. Конструкция case является наилучшим вариантом для обработки выбора пользователя из нескольких вариантов и выполнения соответствующего набора команд.

  9. A. Цикл while продолжает обработку снова и снова до тех пор, пока указанное условие не станет ложным.

  10. D, E. Конструкции if/then/else и case считаются ветвящимися, поскольку они направляют выполнение сценария в одном из нескольких направлений в зависимости от результата вычисления условия.

  11. C. Управляющая конструкция «цикл until» продолжает обработку снова и снова до тех пор, пока указанное условие остаётся ложным.

  12. B. Управляющая конструкция «цикл for» выполняет обработку указанное количество раз.

  13. A. Команда seq 3 9 сгенерирует следующую последовательность чисел: 3, 4, 5, 6, 7, 8, 9. Первое число задаёт начало последовательности, второе — её конец. Поскольку шаг не указан, последовательность увеличивается на 1.

  14. A. Команда cut может использоваться для вывода указанных столбцов или полей из файла на стандартный вывод, используя символ табуляции в качестве разделителя.

  15. C. Команда expand может обработать текстовый поток и заменить все символы табуляции восемью пробелами.

  16. D. Команда nl может обрабатывать файл или текстовый поток и добавлять номер в начало каждой новой строки.

  17. A, B. Команды sort < logfile.txt и sort logfile.txt обе отправят содержимое файла logfile.txt команде sort для сортировки строк в алфавитном порядке и отображения результата на экране.

  18. A. Команда cat /var/log/messages | awk '/syslog/ {print $6,$7,$8}' найдёт вхождения слова «syslog» в стандартном выводе cat и выведет шестое, седьмое и восьмое слова в каждой совпавшей строке.

  19. A. В данной ситуации команда xargs разбивает данные на блоки по 128 КБ перед отправкой команде rm, что достаточно мало для обработки оболочкой.

  20. D. Команда cat ~/ proj_sched.txt | sed s/June/July/ 1> new_proj_sched.txt выполнит поиск слова «June» в файле proj_sched.txt и заменит все вхождения словом «July». Вывод команды sed будет записан в файл new_proj_sched.txt.