私は現在、基本的なエディター用の新しいプロジェクト生成を追加するためのスクリプトに取り組んでいます。ユーザーが選択した言語に従って正しい基本プログラム (hello, world) を生成するために、次の構造を使用しています。
#!/bin/sh
#this is a short example in the case the user selected C as the language
TXTMAIN="\$TXTMAIN_C"
$TXTMAIN_C="#include <stdlib.h>
#include <stdio.h>
int main(int argc, char const* argv[])
{
printf(\"hello, world\n\");
return EXIT_SUCCESS;
}"
MAIN="./main.c"
touch MAIN
echo -n "$(eval echo $TXTMAIN)" >> "$MAIN"
gedit MAIN
main.c を編集すると、このコードによって次の出力が得られます。
#include <stdlib.h> #include <stdio.h> int main(int argc, char const* argv[]) { printf("hello, world\n"); return EXIT_SUCCESS; }
ただし、行 13 を echo -n "$TXTMAIN_C" >> "$MAIN" で置き換えると、正しい出力が得られます。
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char const* argv[])
{
printf("hello, world\n");
return EXIT_SUCCESS;
}
それがエコーまたは評価の問題なのか、それともポインターのような問題を回避する方法があるのか どうかはまだわかりません。どんなアドバイスも大歓迎です!