給Linux配置了環境變量,source /etc/profile 完成之后只在當前用戶下起作用,切換用戶后設置的環境變量竟然沒有生效!重啟后雖然生效了,但是想知道怎么回事。
找到了如下解答:
假設你的用戶為A, 登錄系統時也登錄為A, 則此時/etc/profile 里面的環境變量直接應用到A用戶,然后打開命令行, 你就可以通過 echo $變量名 (不需要花括號)查到你想要的變量名 (包括/etc/profile 和 /home/A/.bashrc 里面設置的;
sudo su, 登錄為root用戶, 這個時候/etc/profile的環境變量是不會自動加載的(因為沒經歷過開機那段時間的一部分黑箱操作), 那這個時候你只能echo到/home/root/.bashrc里面的變量.
然后說運行腳本, 你要確保的是當前用戶和你腳本的所有者是同一個(同為A 或同為root), 否則需要chmod xxx 腳本名( xxx代表權限程度, 具體改成多少我不懂, 所以都改成放權程度最高的 777), 才能使腳本被不同的用戶調用, 然后就是要關注當前用戶下的.bashrc里面是否有目標變量名, 沒有的話就往相應用戶的.bashrc里面添加. 如果當前用戶是開機登陸的用戶(就是看有沒有自動加載過/etc/profile),那直接就有目標變量。