Основы программирования в Linux
Шрифт:
Если вам нужен легко переносимый способ удаления завершающей новой строки, для избавления от нее можно воспользоваться внешней командой
Команда eval позволяет вычислять аргументы. Она встроена в командную оболочку и обычно не представлена как отдельная команда. Лучше всего ее действие демонстрирует короткий пример, позаимствованный непосредственно из стандарта X/Open.
Будет выведено
выведет на экран 10. Таким образом,
Команда
У команды
Например, строка
в сценарии заменит текущую оболочку командой
Второй вариант применения
Эта команда открывает файловый дескриптор 3 для чтения из файла afile. Этот вариант редко используется.
Команда
При программировании сценариев в командной оболочке код завершения 0 — успешное завершение сценария, коды от 1 до 125 включительно — коды ошибок, которые можно использовать в сценариях. Оставшиеся значения зарезервированы в соответствии с табл. 2.5.
Таблица 2.5
| Код завершения | Описание |
|---|---|
| 126 | Файл не является исполняемым |
| 127 | Команда не найдена |
| 128 и выше | Появившийся сигнал |
Многим программистам на языках С и С++ использование нуля как признака успешного завершения может показаться несколько необычным. Большое преимущество сценариев — возможность применения 125 кодов ошибок, определенных пользователем, и отсутствие необходимости в глобальной переменной для хранения кода ошибки.
Далее приведен простой пример, возвращающий код успешного завершения, если в текущем каталоге существует файл с именем .profile.
Если вы любитель острых ощущений или, как минимум, лаконичных сценариев, можете переписать сценарий в виде одной строки, используя комбинацию И-списка и ИЛИ-списка, описанных ранее:
Команда
1. Первым представим сценарий export2.
2. Теперь сценарий export1. В конце сценария запускается export2.
Если вы запустите их, то получите следующий результат.
Как это работает
Сценарий export2 просто выводит значения двух переменных. В сценарии export1 задаются значения обеих переменных, но только переменная bar помечается как экспортируемая, поэтому, когда впоследствии запускается сценарий export2, значение переменной
Медный страж
9. Ведун
Фантастика:
фэнтези
рейтинг книги
Хроники Амбера. Книги Мерлина (авторский сборник)
Хроники Амбера
Фантастика:
фэнтези
рейтинг книги
Страх — это ключ
Детективы:
крутой детектив
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 36
36. История Телепата
Фантастика:
боевая фантастика
аниме
фэнтези
рейтинг книги
Гражданская кампания
12. Сага о Форкосиганах
Фантастика:
космическая фантастика
рейтинг книги