Linux shell脚本编程
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"`
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号