Клиент OpenVPN может отправлять эхо-запросы на веб-сервер удаленной локальной сети, но не может получить доступ через что-либо [дубликат]

Код, который вы показываете, вполне может быть использован для запуска оболочки входа bashиз вашего файла ~/.profile. Лично я бы использовал commandдля обнаружения присутствия bashвот так:

if [ -z "$BASH" ]; then
    shell=$( command -v bash )
    if [ -n "$shell" ]; then
        exec env SHELL="$shell" bash --login
    fi
    unset shell
    echo 'Bash not present, continuing...' >&2
fi

Получает путь к bashв $shell, который затем используется для проверки доступности bashи для установки переменной окружения SHELLдля bash.

Использование [ ! -n "$BASH" ]или [ -z "$BASH" ]не имеет особого значения (, поэтому делайте то, что кажется правильным и наиболее простым для чтения ), но я бы, вероятно, не использовал ! [ "$BASH" ]или [ ! "$BASH" ]. В общем случае вы можете проверить строки, начинающиеся с тире, что может запутать тест, поэтому лучше придерживаться -nили -zпри проверке того, являются ли строки пустыми или нет.

Вы также можете оставить ~/.profileпрактически нетронутым (, за исключением вышеупомянутого ), если системные администраторы однажды решат удалить bashи вместо этого написать отдельный ~/.bash_profileфайл. Оболочка bashбудет использовать ~/.bash_profile, если она доступна, вместо ~/.profile, а сбой при запуске bashприведет к тому, что ваша оболочка входа в систему по умолчанию успешно использует ~/.profileбез спотыкания о возможных башизмах.

0
22.02.2021, 01:42
0 ответов

Теги

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