嘿,所以基本上当我在mac终端上运行此代码时:export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$"
它会改变提示的颜色。我想在.c
源代码文件中找到该命令,然后让代码执行它。如何使用`system()`在父shell环境中执行命令
这是我得到:
#include <stdio.h>
#include <string.h>
int main() {
FILE *fp;
fp = fopen("practice.txt", "w");
if(!fp) return 1;
fprintf(fp, "export PS1='\\[\\033[36m\\]\\u\\[\\033[m\\]@\\[\\033[32m\\]\\h:\\[\\033[33;1m\\]\\w\\[\\033[m\\]\\$'");
system(fp);
return(0);
}
但是当它运行时什么也不做。您可以注意到,当我将命令复制到文件时,我使用双反斜杠而不是单反斜杠,因为需要将单反斜杠打印到文件中。
目前还不清楚“* text file *”是指上面的** C **代码还是其他缺少的文本文件。 – agc
它代表上面的代码 – jim
中的practice.txt感谢您的有益澄清。通过设计(作为防止各种恶作剧的手段),_ * nix_中的程序不能更改其父shell的任何环境变量。因此,*故意*不可能用'system()'做到这一点,所以我建议接受* R Sahu *的正确答案。 – agc