首页 > 代码库 > shell学习
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等),每个语句都是执行的时候才翻译的。因而解释性语言每执行一次就要翻译一次,效率比较低。
shell学习