В языках сценариев оболочки можно использовать два типа переменных: одни — переменные оболочки, а другие — переменные среды. Переменные среды работают как глобальные переменные для языков сценариев. Данные, относящиеся к среде, которые используются для выполнения сценария, хранятся в переменных среды. Эти переменные хранятся на основе пары ключ-значение. Имя переменной определяется ключом, в котором хранится значение переменной. Значение любой переменной среды может быть установлено или доступно с помощью сценария Perl. В этом руководстве показаны методы доступа и изменения переменных среды с помощью сценария Perl.
Использование переменных среды в Perl-скрипте
В этой части руководства показаны методы доступа к определенным или всем переменным среды и сброс любой переменной среды.
Пример 1. Печать определенных переменных среды
Переменные среды хранятся в массиве %ENV, который работает как ассоциативный массив. Имя переменной является ключом массива %ENV, и значение сохраняется в этом конкретном ключе. Создайте файл Perl с помощью следующего сценария, который печатает три переменные среды. Текущее имя пользователя для входа хранится в переменной $ENV{’USER’}. Текущее значение оболочки хранится в переменной $ENV{’SHELL’}. Текущий рабочий каталог хранится в переменной $ENV{’PWD’}. Доступ к этим трем переменным осуществляется и печатается в сценарии.
#!/локальный/bin/perl
используйте строгий;
использовать предупреждения;
используйте 5.34.0;
#Распечатываем значения трех переменных среды
сказать 'Имя пользователя' . $ЕНВ { 'ПОЛЬЗОВАТЕЛЬ' } ;
сказать 'Текущая оболочка' . $ЕНВ { 'ОБОЛОЧКА' } ;
сказать 'Текущий рабочий каталог: ' . $ЕНВ { «Люди с ограниченными возможностями» } ;
Выход:
После выполнения скрипта появляется следующий аналогичный вывод:
Пример 2. Печать первых пяти переменных среды
Создайте файл Perl с помощью следующего сценария, чтобы прочитать первые пять значений массива %ENV, содержащего все переменные среды. Здесь цикл foreach используется для чтения всех переменных среды на основе отсортированных значений ключей. Переменная «$counter» используется в сценарии для завершения цикла после печати пяти переменных среды. Переменная «$counter» увеличивается на каждой итерации цикла, и когда значение «$counter» равно 5, для выхода из цикла выполняется «последний» оператор.
#!/локальный/bin/perlиспользуйте строгий;
использовать предупреждения;
используйте 5.34.0;
#Инициализируем счетчик
мой $счетчик '=' 0 ;
#Итерируем цикл для чтения всех переменных среды
для каждого ( Сортировать ключи % ЕНВ ) {
#Читаем имя переменной среды
мой $ключ '=' $_ ;
#Читаем значение переменной среды
мой $значение '=' $ЕНВ { $ключ } ;
#Распечатываем имя переменной со значением
сказать ' $ключ => $значение ' ;
#Увеличиваем счетчик
$счетчик ++;
#Проверяем значение счетчика
если ( $счетчик > '=' 5 )
{
#Выходим из цикла
последний ;
}
}
Выход:
После выполнения скрипта появляется следующий аналогичный вывод:
Пример 3. Сброс переменной среды
В предыдущих примерах доступ к предопределенным значениям переменных среды осуществляется индивидуально и с использованием цикла. Однако значение любой переменной среды можно изменить с помощью сценария Perl. Создайте файл Perl с помощью следующего сценария, который печатает местоположение HOME, меняет его на «/temp/files» и снова печатает местоположение HOME после обновления.
#!/локальный/bin/perlиспользуйте строгий;
использовать предупреждения;
используйте 5.34.0;
#Распечатываем значение конкретной переменной среды
сказать «Текущая стоимость ДОМА составляет » . $ЕНВ { 'ДОМ' } ;
#Сброс переменной среды
$ЕНВ { 'ДОМ' } '=' '/temp/файлы' ;
#Распечатываем значение конкретной переменной среды после обновления
сказать «Текущая стоимость ДОМА составляет » . $ЕНВ { 'ДОМ' } ;
Выход:
После выполнения скрипта появляется следующий аналогичный вывод:
Пример 4. Печать переменных среды с форматированием
Создайте файл Perl с помощью следующего сценария, который печатает переменные среды с форматированием с помощью функции printf(). Здесь цикл foreach используется для чтения всех переменных среды, как в предыдущем примере. Пара ключ-значение переменной среды печатается путем добавления двоеточия (:) между ключом и значением и сохранения пробела в 15 символов для ключа.
#!/локальный/bin/perlиспользуйте строгий;
использовать предупреждения;
используйте 5.34.0;
#Итерируем цикл для чтения всех переменных среды
foreach мой $к ( Сортировать ключи % ЕНВ ) {
#Распечатываем отформатированный вывод переменных среды
печать ( '%15s : %s \п ' , $к , $ЕНВ { $к } ) ;
}
Выход:
Следующий аналогичный вывод появляется после выполнения сценария. Некоторые части в начале вывода показаны здесь:
Заключение
Переменные среды используются для разных целей, и иногда требуется изменить текущее значение конкретной переменной среды для каких-либо целей программирования. Методы получения и установки значений переменных среды с помощью сценария Perl показаны в примерах этого руководства, чтобы помочь пользователям Perl.