在Linux上的脚本中使用HOSTNAME和CURRENT_USER

假设我想编辑/etc/profile

PYTHONPATH = /home/CURRENT_USER/

  1. 我如何有一个variables ,将自动填写当前用户?
  2. 主机名呢?
  3. 不是这些环境variables吗?

通常应将$USER设置为当前用户,将$HOSTNAME设置为当前主机名。 如果没有,你也可以从whoamihostname的输出中得到它们

另外,用户的主目录不一定在/home/[username] 。 您应该使用$HOME的值。

如果您希望看到所有可用的环境variables,请使用以下命令:

 bash$ set 

记住区分大小写,对于主机名您需要$ HOSTNAME和$ USER

 bash$ echo $USER sparks bash$ echo $HOSTNAME servername 

另一种方法是在sitecustomize.py添加对sys.addsitedir的调用,而不是PYTHONPATH。

但是,由于Python 2.6,你可能不需要这样做,因为/home/$USER/.local/lib/python2.6/site-packages会自动添加到sys.path 。 这是放置用户专用模块/包的标准位置的好select; 你不会真的想添加主目录本身作为模块path,因为它包含了所有不是模块的东西,这可能会导致混淆。

详情请参阅PEP370 。

在python中,调用os.uname()来获取主机名(以及数组中的其他细节)。