【发布时间】:2014-01-20 07:41:38
【问题描述】:
我的脚本设置了一些环境变量,供 Makefiles 使用,所以由于每个 shell、bash(export to set varriable) 和 tcsh(setenv),我都需要从我们运行的地方获取正确的 shell 类型python,我尝试过使用 $SHELL varrriable,但它总是给我 sh 作为我的 shell。
有没有办法,我可以从 python 脚本中获取正确的 shell 类型,或者它总是输出“SH”作为 $SHELL 变量。
【问题讨论】:
-
为什么需要外壳?
subprocess.*函数有环境变量的参数! -
$SHELL为您提供登录 shell,而不是当前 shell。为什么不在 Makefile 中指定特定的 shell,或者使用#!? -
我需要这个,因为不同的用户可以有不同的 shell 偏好,脚本应该检测用户从哪个 shell 调用它,然后基于此,它应该输出正确的数据变量( setenv/export) 为它。