首先,根据之前学习过的编程语言总结。
程序必须有几个特性。确定性,有零个或者多个输入,有一个或者多个输出,有效性,有穷性。
然后这就需要有输入输出流,那么在程序中应该会有指令或者是变量来存储或者输出信息。
然后shell是解析性语言,是弱类型变量,弱类型变量就不需要声明,shell里面会把所有变量看出是字符型。
赋值的格式是:
变量名 = 值
和强类型的变量一样,变量的名字不能是数字开头,而且由数字或字母或下划线组成
bash变量的类型
本地变量:作用域仅为当前shell进程
环境变量:作用域为当前shell进程以及子进程
局部变量:作用域为某个代码段(函数的上下文)
位置参数变量:向执行脚本的shell进程传递参数
特殊变量:shell内置的有特殊功能的变量
$?
0 成功
1-255 失败
本地变量:
变量赋值: name=value
变量引用: $(name),$name
“”弱引用
”强引用
强引用就里面是什么就原样输出,不进行解析
查看本地变量: set
撤销变量 : unset name
环境变量:
变量赋值:
1、export name=value
2、name=value 然后 export name
3、declare -x name=value
4、name=valuede 然后clare -x name
变量引用:
$(name)或者 $name
name可以为PATH,HISTFILE,SHELL,PWD,OLDPWD等等
查看环境变量:
export,declare -x ,env printenv
撤销环境变量 :
unset name
逻辑运算:
真: true yes on 1
假: false no off 0
与运算:
1&&1=1
1&&0=0
0&&1=0
0&&0=0
或运算:
1||1=1
1||0=1
0||1=1
0||0=0
非运算:
!1=0
!0=1
重点!!
短路法则:
COMMAND1&&COMMAND2
COMMAND1为假,则COMMAND2不会执行
否则 COMMAND2必须执行
COMMAND1||COMMAND2
如果COMMAND为真,则COMMAND2不会再执行
否则,COMMAND2必须执行
shell脚本编程的特点:
编程语言分类:运行方式
编译运行:源代码–>编译器编译–>程序文件(C、C++、java)
解释运行:源代码–>运行时启动解释器,由解释器边解释边运行(shell)
根据其变成过程中功能的实现是调用库还是调用外部程序文件
shell编程:利用系统的命令以及编程组件进行编程
完整编程:利用库或者编程进行编程(C、C++)
shell脚本编程:过程式编程,解释运行,依赖于外部程序文件运行
所以,在写脚本的时候,第一行要给出解释器,顶格写。
常见的解释器
#!/bin/bash
#!/usr/bin/python
#!/usr/bin/perl
如何运行脚本:
1、赋予执行权限,并直接运行此文件
chmod +x /path/to/script_file
/path/to/script_file
2、直接运行解释器,将脚本以命令行参数传递给解释器程序
bash /path/to/script_file
脚本里面空白行会被忽略;
脚本中出来第一行,其他行有#也会被忽略,看出注释。