学习建议
Shell本身是一种简单的编程语言,但给很多初学者的感觉是比较复杂。我觉得初学者感觉到的“复杂”里面多数是感觉杂乱,零碎。这主要表现在以下几个方面:
-
Shell本身包含多种版本(sh,ksh,bash,cshell等),不同版本语法不尽相同;
-
同一种shell不同版本也有所差异;
-
Shell语法和常见编程语言不太一样,例如赋值时等号两边不能有空格,条件判断中括号两边必须有空格等;
-
针对同一功能可以有多重实现方法,例如取字符串长度,截取子串等。
-
Shell中有些命令,例如sed,awk等功能强大,但是用法也复杂,难以记住。
针对上面这几点,我学习过程中是这样取舍的:
-
选择一种常用的shell,比如我就选择bash;
-
不用新版本的特性,例如bash后面也引入了数组,但是不用数组也能实现自己想要的功能;
-
对于有严格格式要求的地方整理出来和其它语言对比记忆;
-
针对实现同一功能的多种方法,只记住其中一种,以供自己写代码用;其它的了解即可,当别人代码中用到其它方法时,能看懂就行。
Shell的学习主要分两部分,一部分是基本的语法,例如变量,流程控制,函数,条件判断,字符串操作,数学运算等;另一部分就是shell命令的学习,例如sed,awk,tr,sort,grep,find等。针对像sed,awk这种复杂的命令,我们只需知道一些常用的用法就行,其它的现用现查就好。此外,结合一些实际例子进行学习是最有效的方式。
个人觉得,Shell这种脚本语言,没有太多的思想性的东西在里面,主要是一些语法和用法的规则,所以很容易忘记,如果只是偶尔用一下,基本每次都得现查。这份文档就是按照上面我自己学习中遵循的几个原则总结出来的,主要是用于需要用到Shell的时候快速复习用的。
网友评论