基本的には、このコードをmac端末で実行すると、export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$"
プロンプトの色が変わります。私は.c
ソースコードファイル内のコマンドをしたい、それは同じCコードを実行します。親シェル環境で `system()`を使ってコマンドを実行する方法
#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);
}
しかし、それは何もしません実行するとき:
これは私が得たものです。ファイルにコマンドをコピーすると、単一のバックスラッシュをファイルに印刷する必要があるため、単一のものの代わりに二重のバックスラッシュを使用することに気づくでしょう。
"*テキストファイル*"が上記のC **コードを参照するのか、それとも他のテキストファイルがないのかは不明です。 – agc
上記のコードでは、practice.txtを参照しています – jim
ご協力ありがとうございます。設計上(あらゆる種類のいたずらを防止する手段として)、* nix_のプログラムは、親シェルの環境変数を変更することはできません。したがって、意図的に 'system()'でこれを行うことはできないので、* R Sahu *の正解を受け入れることをお勧めします。 – agc