shell学习

1:shell脚本给变量赋值的时候“=”两边不能有空格。

2:单引号为全引用,如果echo ‘$hello ‘   则输出的是hello。双引号为弱引用,如果echo "$hello",hello有赋值,则输出的是hello赋予的值。

3:shell脚本中的局部变量必须明确以local声明。否则即使在代码块中,它也是全局可见的。

#! /bin/sh
num=123
func1()
{
    num=321
    echo $num
}
func2()
{
    local num=456
    echo $num
}
echo $num
func1
func2
echo $num

输出的是:123 321 456 321  在代码块中的func1中赋值的num没有带local声明,即覆盖改变全局num。

4:计算机不能直接理解高级语言,只能直接理解机器语言,所以必须把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。翻译的方式有两种:一个是编译,一个是解释。这两种形式只是翻译的时间不同。编译型语言写在程序执行之前,需要一个专门的编译过程,把程序编译成机器语言的文件,比如windws的exe文件,以后要运行的话,就不用重新翻译了,直接使用编译的结果就行。因为只做了一次翻译,运行时不需要翻译,所以编译型语言的程序执行效率高,limux的许多外部命令都是这种类型,他们的文件格式是二进制。解释型语言的程序不需要编译,省了道工序。解释型语言在运行的时候才编译,比如linux shell语言,专门有一个解释器直接执行程序(/bin/sh或者bash等),每个语句都是执行的时候才翻译的。因而解释性语言每执行一次就要翻译一次,效率比较低。


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。