【发布时间】:2020-01-17 00:41:49
【问题描述】:
我想制作一个可以编译和运行(如果它编译)我创建的 C 程序的 shell 脚本。但是,如果它不编译,我不希望它运行可执行文件。到目前为止,我已经创建了这个作为我的解决方案;
gcc -o assignment1 assignment1.c if [[ ?$ -eq 0 ]];然后 ./assignment1;菲 0号出口;
但是,它一直说第 2 行语法错误:文件意外结束。我是 bash 的新手,有人可以解释为什么这不起作用
修复了语法错误并关闭了 if 语句。感谢评论者。
【问题讨论】:
-
你有几个语法错误;使用shellcheck.net检查您的代码。
-
你应该学会使用makefile而不是编写自定义脚本。
-
+1 用于使用 Makefiles - 它们是专门为此目的而构建的。这是一个快速介绍:gnu.org/software/make/manual/html_node/Introduction.html
-
if gcc -o assignment1 assignment1.c; then ./assignment1; fi-- 根本没有理由使用$?或[[。