hello 会有 this ade 标点符号 及其 自定义 make
看到别人的学习总结,觉得不错转了过来(转自TryFly)
shell脚本是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正则表达式,管道命令以及重定向向等功能,以达到我们所想要的处理目的。它的基本用途有:
- 1.自动化常用命令
- 2.执行系统管理和故障排除
- 3.创建简单的应用程序
- 4.处理文本或文件
- ...
第一步、使用文本编辑器来创建文本文件
- 第一行必须包括shell 声明序列:#! 也就是我们通常所说的“蛇棒”,如:`#!/bin/bash`
- 添加注释,注释以#开头,注释行会被解释器忽略。
第二步、运行脚本
- 给予执行权限,在命令行上指定脚本的绝对或相对路径
- 直接运行解释器,将脚本作为解释器程序的参数运行
脚本示例:
- #!/bin/bash
- # ------------------------------------------
- # Filename: hello.sh
- # Revision: 1.0
- # Date: 2017/09/16
- # Author: fly
- # Email:
- # Description: This is the first script
- # ------------------------------------------
- echo “hello world”
- 1.检测脚本的语法错误
- bash -n /path/to/some_script
- 只检测,不执行脚本,并且不能检测脚本的逻辑错误
- 2.调试执行
- bash -x /path/to/some_script
- 逐行执行脚本,便于直接判断脚本错误,但可能会有些不安全
根据变量的生效范围,将自定义变量分为:
- 本地变量: 仅对当前SHELL有效,对子SHELL也无效
- 环境变量:对当前SHELL及其子SHELL均有效。
- 局部变量:生效范围为当前shell、进程中某代码片断( 通常指函数)
使用自定义变量前,我们需要对变量进行赋值,下面是变量命名规则:
- )使用变量无需事先声明
- )首个字符必须为字母(a-z,A-Z)
- )中间不能有空格,可以使用下划线(_)
- )不能使用标点符号
- )不能使用bash里的关键字(可用help命令查看保留关键字)
- )需要给变量赋值时,可以这么写:
- )变量名=值
- )取一个变量的值,只需在变量名前面加一个$ ( 注意: 给变量赋值的时候,不能在"="两边留空格 )
例:
- A=1 (本地变量)
- export B=2(环境变量)
- local C=3(局部变量)
使用变量结束后,可以用
删除自定义变量
- unset name
位置变量:在脚本代码中调用通过命令行传递给脚本的参数
- $1, $2, ... :对应第1 、第2 等参数,shift [n] 换位置
- $0: 命令本身
- $*: 传递给脚本的所有参数,全部参数合为一个字符串
- [email protected]: 传递给脚本的所有参数,每个参数为独立字符串
- $#: 传递给脚本的参数的个数
- [email protected] $*只在被双引号包起来的时候才会有差异
可以用
清空所有位置变量
- set --
变量 | 含义 |
---|---|
$? | 变量保存最近的命令退出状态 |
$0 | 当前脚本的文件名 |
$# | 传递给脚本或函数的参数个数 |
$*/[email protected] | 传递给脚本或函数的所有参数。被双引号(" ")包含时,[email protected]与$* 稍有不同 |
$$ | 当前Shell进程ID,对于 Shell 脚本,就是这些脚本所在的进程ID |
请看下面脚本:
- #!/bin/bash
- echo "File Name: $0"
- echo "First Parameter : $1"
- echo "First Parameter : $2"
- echo "Quoted Values: [email protected]"
- echo "Total Number of Parameters : $#"
运行结果:
- ./test.sh a b
- File Name : test.sh
- First Parameter : a
- Second Parameter : b
- Quoted Values: a b
- Total Number of Parameters : 2
- #!/bin/bash
- a=2;
- b=3;
- let sum=a+b
- echo $sum
- #!/bin/bash
- a=2;
- b=3;
- sum=$[a+b]
- echo $sum
- #!/bin/bash
- a=2;
- b=3;
- sum=$((a+b))
- echo $sum
- a=1
- b=2
- sum=$(expr $a + $b)
- echo $sum
- echo "1*2*3" | bc
今天对shell脚本就介绍到这里,以后会对进阶的shell脚本进行整理,再见。
shell脚本基础学习(转)
来源: http://www.bubuko.com/infodetail-2311410.html