使用 su 切换用户时,.bash_profile 中的一行被打印到控制台

使用 su 切换用户时,.bash_profile 中的一行被打印到控制台

当我 su - 时,我的 ~/.bash_profile 中的特定行会打印到控制台。以下是演示此场景的输出。

$ 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会打印到控制台。这行是我的用户 spark 的 ~/.bash_profile 中的一行。

我检查过了/etc/profile/etc/profile.d/sh.local但没发现什么异常。还添加到了,set echo off~/.bash_profile仍然打印了以下行:su -

答案1

原因是在用户.bash_profilespark你可能会有如下行:

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'

以避免它

相关内容