Пытается добавить псевдоним в новом терминале CentOS8 - PullRequest
0 голосов
/ 01 апреля 2020

Поэтому я пытаюсь создать псевдоним для запуска двух сценариев python, когда открывается новое окно bash, но я продолжаю сталкиваться с нечетными проблемами. Если я создаю псевдоним вручную в окне терминала, нет проблем:

alias UserPasswordReset="python3 /bin/Admin.py"
alias SystemFileCheck="python3 /bin/SystemFileCheck.py"

Если я вручную создаю файл с именем aliasfile. sh и помещаю его в /etc/profile.d/ с конечно # ! / bin / bash как первая строка, нет проблем при открытии нового терминала, псевдоним есть и работает.

Так вот в чем проблема, если я предварительно создаю файл и копирую его в Каталог /etc/profile.d/ Я получаю странные результаты, хотя содержимое файла точно такое же. Если я изменю файл так же, как и другой, то это не имеет значения. Это вывод, который я получаю

enter image description here

Не уверен, что здесь происходит или что я делаю неправильно, это должно быть так просто .

Ответы [ 2 ]

0 голосов
/ 01 апреля 2020

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

Проблема здесь в том, что вам нужны псевдонимы для интерактивных оболочек, а правила для интерактивных оболочек немного хитры. С man-страницы:

Когда bash вызывается как интерактивная оболочка входа в систему, она сначала читает и выполняет команды из файла / etc / profile, если этот файл существует. Когда запускается интерактивная оболочка, которая не является оболочкой входа в систему, bash читает и выполняет команды из ~ / .bashr c, если этот файл существует.

Следовательно, вам необходимо получить исходный код aliasfile.sh в вашем /etc/profile. Но это касается только первого случая. Например, если пользователь открывает интерактивную оболочку без входа в систему, он все равно не увидит определения. Поскольку вам не разрешено взламывать домашние каталоги пользователя, лучше указывать при каждом использовании также добавлять

. /path/to/setup/directory/aliasfile.sh

в его ~/.bashrc.

0 голосов
/ 01 апреля 2020

Вы должны использовать . aliasfile.sh для получения файла. А также удалите строку shebgang (#!/bin/bash), иначе псевдоним будет только для сценария.

...