【发布时间】:2012-10-21 21:21:46
【问题描述】:
我正在玩一个小应用程序(用 C 语言),它在运行时会创建一个目录树,并用文件填充该目录树。它通过使用一系列格式为
的行来做到这一点system("echo \"lump = \" >> ./newdirectory/newfile.c");
这工作正常,除了当我尝试让它将一行 C 写入新文件时,该文件本身包含一个 system("echo"); 调用。
具体来说,
system("echo \"system(\"echo hello world\");\" >> ./newdirectory/newfile.c");
写成
system(echo hello world);
【问题讨论】:
-
可以做你想做的事,但从长远来看,如果你学习如何直接从 C 语言创建文件而不是乱搞
system,你会更快乐。或者,您可以编写一个常规的旧 shell 脚本,而不是把它打扮成 C 服装。 -
同意;这更像是一个练习,而不是一个实际的项目。我想我真正的好奇心就是我对转义字符做错了什么。
标签: c bash escaping echo system-calls