Linux

當使用 su - <someuser> 切換使用者時,.bash_profile 中的一行將列印到控制台

  • March 6, 2020

當我 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被列印到控制台。該行是我的 ~/.bash_profile 使用者 spark 中的一行。

我已經檢查過/etc/profile/etc/profile.d/sh.local但沒有發現任何異常。也添加set echo off~/.bash_profile但該行仍然被列印時su -

原因是在使用者中.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'

避免它

引用自:https://serverfault.com/questions/1005862