Bash-Shell编程1
1.1Shell特性
- 文件和命令自动补齐(Tap键)
- 命令的历史记忆功能
- !+ 数字键。—使用历史的一个命名,会先显示命令内容,再显示命名结果。
- !+ 字符串。—找到最近一个以字符串开头的命名运行。
- !+ $。—上一个命令的最后一个参数。
- !+ !。— 上一个命令。
- ^ + R(Ctrl+R)。—搜索历史命令。
- 别名功能
- alias查看别名
- unalias取消别名
- 管道 | tee
- 把标准输入作为标准输入
- shell通配符
- * 匹配任意多个字符
- ?匹配任意一个字符
- [] 匹配括号中任意一个字符
- ()在子shell中执行
- {}集合
- \ 转义符
- 输出带有颜色的文本
- echo -e “\e[1;30mThis is a text.”
- \e[1;30m,用来控制颜色种类30内可以修改
- echo -e “\e[0m”
- 在运行上一条后,会让你的名字颜色改变,这条命令可以修改会原来的颜色
- echo -e “\e[1;30mThis is a text.\e[0m”
- 两条综合一下,可以只改变里面text文本颜色
1.2Shell变量
- 自定义变量
- 定义变量:变量名=变量值 变量名必须以字母或下划线开头,区分大小写
- 引用变量:$变量名 或 ${变量名}
- 查看变量:echo $变量名 或 set(所有变量:包括自定义变量和环境变量)
- 取消变量:unset变量名
- 作用范围:仅在当前shell中有效
- 环境变量
- 定义环境变量:
- 方法一 export 变量名=变量值
- 方法二 export 变量名(将自定义变量转换为环境变量)
- 引用环境变量:$变量名 或 ${变量名}
- 查看环境变量:echo $变量名 或env
- 取消环境变量:unset变量名
- 变量作用范围:在当前shell和子shell有效
- 定义环境变量:
- 位置变量
- $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10}
- 预定义变量
- $0 脚本名
- $* 所有的参数
- $@ 所有的参数
- $# 参数的个数
- $$ 当前进程的PID
- $! 上一个后台进程的PID
- $? 上一个命令的返回值 0表示成功
source命令类似于导包,source 文件.sh,即可加载该文件
也可以在文件开始定义要调用的脚本路径
- 变量的赋值方式
- 显示赋值
- 变量名=变量值
- read从键盘读入变量值
- read 变量名
- read -p “提示信息:” 变量名
- read -t 5 -p “提示信息:” 变量名
- read -n 2 变量名
- 显示赋值
- 变量的运算
- 整数运算
- expr
- expr 1+2
- expr $num+$num
- $(())
- echo $(($num+$num))
- echo $((num+num))
- $[]
- echo $[1+1]
- let
- let num=1+1
- let num++
- expr
- 小数运算
- echo “2*3” |bc
- echo “num=2;6/4” |bc
- awk ‘BEGIN{print 1/2}’
- echp “printf 5.0/2” |python
- 整数运算