嘿,所以基本上當我在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