Trade Off

supercalifragilisticexpialidocious

Shell Study

今天开始学学Shell编程,不光是因为需要在惯例服务器的时候使用到,平常作为一门必须掌握的脚本语言也是很有必要的,所以就学吧,况且那本《Shell脚本学习指南》已经买了放那里好久了,就书刚到的时候看了两页,真的就像是两页,后来光看《The Pragmatic Programmer》和《1Q84》了。

shell脚本的第一行一般写明这个脚本使用哪种脚本解释器运行,以"#!“开头,后面加脚本解释器的名字和相应参数,如果不需要什么参数就写上“-”,这是出于安全考虑,可以避免某种程度上的欺骗式攻击(spoofing attack)。

选项:命令后面用一个“-”开头书写的内容,如:ls -l,那么“-l”就是选项。
参数:有的选项需要传入参数,那么就要紧跟着那个需要参数的“选项”,如:cc -o exp exp.c
没参数的选项合并,例如:ls -al = ls -a -l,书写非常方便吧。
分号分隔开几条命令,会逐一执行;如果用“&”的话,就会让命令进入后台执行,可以立刻相应你的下一条命令。

shell中的变量赋值有个要求,变量名后,到等号,到值都不能有空格:“var=1”这是正确的,“var = 1、var= 1等等都不对”,这点有些别扭,我喜欢多加空格。。。而且大多数coder也是如此吧?

取出刚刚你创建的变量需要在变量名前面加"$“符号,看来和取钱的感觉差不多哈哈,或许以前认为变量中的值放在内存或者磁盘上都是昂贵的,如同取钱。

变量赋值这里还有些东西值得说一下:

可以一行多次赋值,比如,first=1 second=2 third=3
如果有空格就加双引号: var="1 2 3",这看起来像string
还可以这样,var="$first $second $third",最后var的值里面会包含first、second、third的值,这点就不太像string了,需要注意!!!

由于echo命令在Unix多个发行版之间有差异,所以输出的话还是用printf好了:—)

今天就先到这。

Comments