Напишите сценарий с именем print_lines.sh, который использует команду head и tail для печати определенного набора строк из файла. Сценарий должен принимать три аргумента: номер строки для начала, номер строки для остановки и используемый файл. Вот пример запуска:Печать определенных строк в Unix
`[[email protected] ~]$ print_lines.sh 7 10 /etc/passwd
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[[email protected] ~]$`
В этом примере скрипт печатает строки 7 через 10 (включительно) и т.д./пароль файл /. Ваш скрипт должен выполнять проверку ошибок. В частности, вам необходимо проверить все следующие вещи:
- Вы получаете правильное количество аргументов (3).
- Указанный файл существует и является нормальным файлом.
- Номер указанной первой строки меньше или равен указанному последнему указанному номеру строки.
- Фактическое количество строк в файле больше, чем последняя строка для печати. Если какое-либо из этих условий неверно, вы должны распечатать соответствующее сообщение об ошибке пользователю и остановить. Если все они выполнены, вам нужно сделать немного арифметики и использовать голову и хвост вместе, чтобы распечатать только запрошенные строки.
Я знаю, что это что-то вдоль этих линий:
#!/bin/bash
heads -n 10 /etc/passwd | tails -3
Не знаете, как идти об остальном ...
Возможно инструкции находятся в вашем учебнике? – ghoti
Вы знаете, как получить аргументы? Команды - 'head' и' tail', а не «head» и «tails». Для этого я бы использовал 'sed', где вы можете специально напечатать диапазон номеров строк. –
'head -n $ 2 $ 3 | tail -n $ 1 'это то, что у меня есть, но его печать немного больше, чем 7-10 строк – user5442073