c - Linux getenv() 无法获取 $PS1 或 $PS2

标签 c linux shell environment-variables

我的家园世界就是写一个shell。我必须使用 $PS2

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

char *ENV_ps2;
ENV_ps2 = getenv("PS2");

我刚刚发现 ENV_ps2 指向 (null)

如何在我的程序中获取 $PS2

最佳答案

PS1PS2 shell 变量未导出,因此无法从子进程访问。您可以使用一个简单的脚本对此进行测试:

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

echo PS1=$PS1
echo PS2=$PS2


$ /tmp/pstest.sh 
PS1=
PS2=

关于c - Linux getenv() 无法获取 $PS1 或 $PS2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10501830/

相关文章:

linux - 在 linux 终端中查找并删除文件名中包含相同字符串的文件

linux - 我是否需要 vagrant 在 Ubuntu 12.04 上安装 edx 平台才能通过 AWS 步骤

bash - 在 bash 中正确地允许命令替换的分词

linux - 如何使用 setfacl 为用户开放对目录的访问

c - 基于堆栈的缓冲区溢出漏洞

c - Arm链接寄存器r14如何工作

linux - 在 Linux 和 Windows 中使用相同的 Android-sdk

c - 使用 getenv 和 env 不会给出相同的结果 :

C int 数据类型 *在实践中*

c++ - 为什么在文件 I/O 中读取数据 block 比逐字节读取更快