Назад | Перейти на главную страницу

When switch user with su - <someuser>, на консоль выводится строка из .bash_profile</someuser>

Определенная строка в моем ~ / .bash_profile выводится на консоль, когда я su -. Ниже приведен результат, демонстрирующий этот сценарий.

$ whoami
admin
$ su - spark
Password: 
Last login: Fri Mar  6 21:30:22 +08 2020 on pts/2
[1]+  Done                    export JDBC=jdbc:postgresql://192.168.100.117/test?user=spark
$ 

Я не понимаю, почему линия export JDBC=jdbc:postgresql://192.168.100.117/test?user=spark выводится на консоль. Эта строка является строкой в ​​моем профиле пользователя ~ / .bash_profile.

я проверил /etc/profile, /etc/profile.d/sh.local но ничего необычного не нашел. Также добавлено set echo off к ~/.bash_profile но строка все равно печатается, когда su -

Причина в .bash_profile из spark пользователь, у вас может быть строка вроде:

export JDBC=jdbc:postgresql://192.168.100.117/test?user=spark &

и этот амперсанд (&) в конце заставляют эту команду выполняться как фоновое задание.

Или у вас что-то вроде в .bash_profile:

export JDBC=jdbc:postgresql://192.168.100.117/test?user=spark&parameter=something

и снова амперсанд (&) причиной этого. Вы можете изменить строку на

export JDBC='jdbc:postgresql://192.168.100.117/test?user=spark&parameter=something'

чтобы избежать этого