我有一个 C++ 应用程序,需要使用系统调用执行特定于 shell 的命令。是否有一种方法来检测用户正在运行的 shell?(Csh/Bash 等)。感谢您。
更详细一点,我正在尝试处理一些代码,通过
更详细一点,我正在尝试处理一些代码,通过
system
分叉出一个 rsh
调用,其中一系列的命令使用了 setenv
,但在 bash 中不起作用。我想检测系统是 csh
还是 bash
,并相应地重新编写这些调用。
/etc/passwd
中查找,例如:cat /etc/passwd | grep user | cut -d: -f7
。 - Super-intelligent Shadegetent passwd <user> | cut -d: -f7
。如果用户在LDAP和passwd中都有记录,则可能需要使用head
或tail
。 - Super-intelligent Shadersh
命令,而是使用fork
然后execve
它。 - Basile Starynkevitch