shell脚本
shell为非类型的解释型语言,即给变量赋值时就已为其定义。
#!/bin/bash //环境说明
- chmod o+x 文件名 //命令行运行
- /bin/bash 文件名 //同上作用
- $变量名 //引用变量
- $0 //当前程序的名称(系统早先定义)
- $n //第n个参数
- $* //全部参数
- $PWD //当前所在的目录
- -f //文件是否存在
- -d //目录是否存在
- -s //检查文件是否为空(比较成功时表示含有数据;通常在删除文件时使用)
- -nt;-ot //比较一个文件和另一个文件的新旧
- -x;-w; //执行权限和写入权限
- -eq(等于)-ne(不等于)-lt(小于)-gt(大于)-le(小于等于)-o(或,单方面成立)-a(与,多方面成立)-z(空字符串)
- (())[[]] //双圆括号表示数学表达式,双方括号表示高级字符串处理函数 //通常用于算术判断或计算
- if开头 fi结尾 if ();then(if语句只执行返回值为成功返回(0)的命令 而跳过错误命令)(可以使用布尔逻辑来执行if [] || [];if [] && [])
- elif
- case命令:eg:
case var in pattern1 | pattern2) command1;;
pattern3) command2;;
*) default command3;;
esac
- 括号中开头和结尾要空格
- while ();do
done
- for var in list
do
commands
done
- until语句 同while 但是相反 知道为0停止
- C式for循环:eg:
for(( i=1; i<10; i++ ))
注意:变量的赋值可以包含空格;变量不以美元符号做前缀;迭代处理式中不含expr式
- if和while后要空格
- 反引号的内容当成命令来执行
- date +%y%m%d //日期按年月日格式输出
- wc命令对数据中的文本计数,默认情况下生成三个值:文本行数,单词数,字节数
- 退出脚本时会返回一个0到255的整数值 可以使用$?来捕捉这个值 判断脚本是否执行成功(返回0一般表示执行成功)(可以自己设置脚本退出的返回代码在0到255之间的一个数;eg:exit 5;没设置时 1为未知错误,2为误用shell命令,126为用户无权限执行该命令,127为没有找到命令)
- 可以通过暂时更改环境变量中的IFS变量来使脚本忽略字段分隔符(空格,制表,分隔)eg: IFS = $‘/n‘
重定向:
- 输入重定向:eg:command < inputfile (箭头方向为数据流方向)
- 内置输入重定向:eg:
$wc << EOF
test.txt
EOF
(EOF为数据标记,开始和结尾处必须相同)
- expr命令可以处理等式:eg
$expr 1+5
也可以使用$[1 + 5]
- bc命令可以调用bash的计算器 需要离开时输入quit(scale设置小数位大小 同时可以在脚本中使用bc命令 eg:
variable`echo "options;express | bc"`
bc中创建的变量只在计算器中有效,在shell脚本中无效
原文地址:https://www.cnblogs.com/mercuialC/p/9032018.html
时间: 2024-10-07 01:18:14