当我在这里输入 echo 时:
skyI@skyI-MP-i1640:~$ echo $XDG_RUNTIME_DIR
/run/user/1000
它显示/run/user/1000
,但是当在此处输入 echo 时:
root@skyI-MP-i1640:/SLAM/DSO/dso# echo $XDG_RUNTIME_DIR
它不显示/run/user/1000
为什么?我该如何解决?
答案1
每个用户都有环境变量。XDG_RUNTIME_DIR
很可能未在 root 用户的环境中定义或被覆盖为空。
要在当前 shell 中修复此问题(暂时),请以 root 身份登录并输入export XDG_RUNTIME_DIR="/run/user/1000"
要修复每次 root 登录时出现的问题,您可以在 中定义它。只需在文件底部~root/.profile
添加该行即可。然后注销并再次登录。export XDG_RUNTIME_DIR="/run/user/1000"
source ~/.profile
您可以使用以下命令验证当前 shell、类型env
或特定 shell中定义了哪些环境变量env | grep XDG_RUNTIME_DIR
答案2
解决了。抱歉,答案很简单。为什么:他们是不同的用户。不同的用户有不同的 .bashrc 文件。如何:只需像这样导出,export XDG_RUNTIME_DIR="/run/user/1000"