Что задает переменная окружения $SHELL?

Для хорошего grep решение, см. ответ Стефана . В качестве альтернативы, вот Perl:

perl -ne 'print if grep{$_!~/^\d{5}$/} split(/[,-]/); ' file 

Это разделит каждую строку ввода на , или - , а затем будет искать элементы разделенного массива, которые не состоят из ровно 5 номеров. Если они найдены, строка печатается.

4
21.04.2016, 03:42
2 ответа

Традиционно, с помощью login(1):

ENVIRONMENT
     login sets the following environment variables:

     HOME        The user's home directory, as specified by the password
                 database.

     SHELL       The user's shell, as specified by the password database.

Хотя в наши дни эти настройки может делать оконный менеджер или терминальная программа, в зависимости от типа unix и того, насколько далеко они отошли от традиций. env покажет, что в настоящее время установлено в окружении, которое оболочка или что-то другое могло быть изменено по умолчанию. Однако "настройки терминала" обычно не являются переменными среды, и такие оболочки, как bash или zsh, имеют команду set и другие места, где они скрывают настройки...

5
27.01.2020, 20:55

Вы можете проверить значения по умолчанию для вашей системы в / etc / default / useradd или с помощью sudo useradd -D , это выведет значение по умолчанию для $ SHELL и другие переменные.

0
27.01.2020, 20:55

Теги

Похожие вопросы