一,shell脚本
①if else语句:[ ]这个符号里面前面要有空格,后面也要有空格,里面也要有空格。

②case语句:

③for和while循环(total=0,这个等于号也不能有空格,比如total =0,就不行)

④定义函数:

其他指令:&&操作 ,cmd1&&cmd2,当cmd1执行完毕切正确,cmd2开始执行,如果cmd1错误,那么cmd2也不执行。比如1=2&&echo "6666",是不执行这个输出操作的。||操作,cmd1||cmd2,当cmd1执行切正确,那么cmd2不执行,否则执行。$0:脚本名,$1:脚本后跟第一个数据 ,2:脚本后跟第二个数据,@:脚本跟的所有数据,&#:脚本后跟数据个数。这个脚本感觉不太好用啊,每次都要控制空格,稍微空格不对,结果就出问题。
二,Makefile工具
Makefile相当于一个文本文件,将这些需要编译的文件的逻辑给写到这个文本中,直接运用这个文本的逻辑,这样没有变化的地方就不用编译了,更省时间。对于一个工程项目,常规编译采用:
对于Makefile,在终端可以直接运行:make

但是这样还是麻烦,执行文件太多,不可能全给写上去吧,因此要有什么来替代,因此采用%这个好东西,代表这一类,%.0:%.c→将所有.c类型的转化为.o类型的,并且在前面,也能将所有的.o类型文件进行表示:objects=main.o input.o calcu.0。
执行清除操作时,终端输入make clean即可。其次是如果这个文件夹里面有和clean重名的文件,如果执行make clean,发现Makefile中clean的操作并不执行,因此在Makefile的clean前面加上 .PHONY:clean
其次Makefile的=号和C语言的赋值不一样,比如b= 8,a=b,b=2,按照c语言的逻辑,a为8,但是在Makefile中,a等于b的最终值,为2。要想和C语言的一样,采用!=。

三,Vim编辑器
在esc下,dd-删除光标所在行,u-撤销上步,yy-复制所在行,p-粘贴到光标下一行,P-粘贴到光标上一行。在shift+:键下,wq保存并退出,q退出(不做操作),q!不报存退出(动了里面内容,但是不保存),w保存。