Linux getenv()无法获得$ PS1或$ PS2

thl*_*ood 7 c linux shell environment-variables

我的家乡世界是写一个壳.我必须使用$PS2.

但是当我写这样的代码时:

char *ENV_ps2;
ENV_ps2 = getenv("PS2");
Run Code Online (Sandbox Code Playgroud)

我刚发现ENV_ps2是指向的(null).

我怎么能得到$PS2我的程序?

tro*_*foe 6

PS1PS2shell变量没有出口,因此从子进程无法访问.您可以使用简单的脚本对此进行测试:

$ cat /tmp/pstest.sh
#!/bin/sh

echo PS1=$PS1
echo PS2=$PS2


$ /tmp/pstest.sh 
PS1=
PS2=
Run Code Online (Sandbox Code Playgroud)

  • ......从技术上讲,它们不是*环境*变量.它们是本地shell变量. (3认同)