@wyjgd
2019-08-25T13:35:43.000000Z
字数 1404
阅读 757
shell脚本:包含一些命令或声明,并符合一定格式的文本文件
格式要求:首行shebang机制
#!/bin/bash
#!/bin/python
#/bin/perl
用途: 自动化常用命令
执行系统管理和故障排除
创建简单的应用程序
处理文本或文件
1、第一行必须写shebang机制(#/bin/bash)
2、添加相关注释(#xxxxxx)
3、给予脚本文件执行权限(chmod +x xx.sh)
4、运行脚本
脚本调试可以用sh -n检测语法错误或sh -x调试执行测试
变量赋值:name='value'
引用变量:
直接引用:name="root"
变量引用:name="$root"
命令引用:name=`command` name=$(command)
变量引用:${name} $name
"" : 弱引用,变量引用会被替换为变量值
'' : 强引用,变量引用不会被替换为变量值,保持原字符串
显示已定义的所有变量:set
删除变量:unset
变量声明、赋值:
export name=value
declare -x name=value
变量引用:${name},$name
显示所有环境变量:
env
printenv
export
declare -x
删除变量:
unset name
内建环境变量:
PATH、SHELL、USER、LANG、HISTSIZE、HOME、PWD、SHLVL、MAIL等
$1,$2....... :对应第1、第2等参数
$0:命令本身
$*:所有参数,全部参数为一个字符串
$@:所有参数,每个参数为独立字符串
$*和$@在被双引号括起来时,才有差异
$#:参数个数
set --:清空位置变量
进程使用退出状态来报告成功或失败:
0 代表成功,1-255代表失败
$?:最近命令退出状态
bash中自定义退出状态码
exit [n]:自定义退出状态码
脚本运行中,遇到exit命令,会立即终止;退出后的状态码取决于exit后的数字。
+,-,*,/,%取模(取余),**
实现算术运算:
let var=算术表达式
var=$[算术表达式]
var=$((算术表达式))
var=$(expr arg1 arg2 arg3..)
echo '算术表达式'| bc
bash中内建的随机数生成器:$RANDIM(0-32767)
let var=$RANDOM%50:0-49之间的随机数
true or false:1 or 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
短路运算
短路与:cmd1 && cmd2
cmd1为真,则执行cmd2
cmd1为假,则不执行cmd2
短路或:cmd1 || cmd2
cmd1为真,则不执行cmd2
cmd1为假,则执行cmd2
异或:^
异或的两个值相同为假,不同为真