shell编程

来源:互联网 发布:淘宝搜索排行 编辑:程序博客网 时间:2024/06/06 09:00

1,shell脚本的格式和执行
2,变量
3,运算表达式
4,控制语句
5,数组
6,函数
7,关键的字
8,输入输出
1,shell脚本的格式和输出
格式:第一行以#!/bin/bash 开头,且#表示注释,第一行除外
Shell脚本的执行有以下几种方式:
a.sh  (条件是有执行权限当且c lasspath中有.)
./a.sh(有执行权限)
/usr/local/a.sh  (有执行权限)
bash a.sh(不管有路径和权限,作为bash一个参数执行)
2,变量
本地变量:相当于Java中的private,只在当前shell有效,对其他shell进程或子进程都无效。Num=10    echo $num        
环境变量:相当于Java中的protected关键字修饰。生命周期是当前进程及其子进程。 设置临时环境变量  export  num=JAVA_HOME
局部变量:相当于java函数体中的局部变量,生命周期是该函数。Local  x=10
位置变量:
特殊变量:


3,运算表达式
`` 飘号:解析执行并获取结果
“ ”双引号:解析
‘’单引号:原样输出
Let  
4,程序流程控制
if [ $1 –gt 2 ]
then
Echo  hahah
fi While  条件
Do
循环体
Done For((i=0;i<10;i++))
do
Echo $i
done Case I in 
 1)
执行第一个语句
;;
2)
执行第二个语句
;;
………………
…………
*)执行第n个语句
;;
esac






if [ $1 –gt 2 ]
then
Echo  hahah
Elfi [$1 –eq2 ]
Then
Echo  heihei
Else
Echo  enen
fi For i in 1 2 3 4 
do
Echo $i
done
if [ $1 –gt 2 ]
then
Echo  hahah
Else
Echo aoao
fi For I in { 0..9..2}
do
Echo $i
done


5数组
数组的声明: declare –a  arr
Arr=(a b c d )或者arr=([0]=a [1]=b [3]=d [2]=c);
通过${arr[2]}来访问角标为2的元素
求这个数组的所有元素  ${arr[@|*]};
获取这个数组的长度  ${#arr[@]};
数组元素的长度${#arr[1]};
6,关键字
Crontab  read  heip man  declare 
Crontab是个定时器,主要用于定时执行某个命令。Crontab –e 进入编辑定时执行功能 *表示一个单位如 在日(*)表示每天
  分
 *
*
*
*
* 待执行命令
要查看crontab命令是否执行了,可以先查看service  rsyslog  status   查看服务是否开启,如果没有开启需要执行  service rsyslog start  开启服务
用tail   -f   /var/log/cron  查看crontab执行的情况
read 只要用于接收键盘的输入  read   num   读取变量的值 
read –p “请输入您的用户名”   username       -p用于给username变量添加说明
read   -s    -p   “请输入您的密码”   password     -s密文输入密码
help和man主要用于查看帮助信息,help侧重于对整个函数 关键字的概述,man更多的侧重于对函数关键字的详细描述。
declare 对关键字的说明    
declate  -r表示只读文件   
-i表示是整型数据类型
              -a  arr表示是arr是数组
8,输入输出
文件输入输出的状态码,0,表示正常输入,1表示正常输出,2表示错误
将命令存到一个文件中的命令是:ll   >file或者ll  1>file表示把输出命令放到file去
将正确错误命令存到文本中:一个文本中ls  1>a.txt   2>&1
追加的操作是ls  1>>a.txt   2>&1



0 0