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
- shell 以及shell编程
- Shell和Shell编程
- 【shell】shell 编程基础
- Shell及其Shell编程
- Shell编程
- Shell编程
- Shell编程
- shell编程
- Shell编程
- Shell编程
- shell 编程
- Shell编程
- Shell编程
- shell编程
- shell编程
- Shell编程
- shell编程
- Shell 编程
- OpenCv学习笔记(六)----图像空间缩减,OpenCv中的计时函数和OpenCv中操作图像单个像素点的方法
- 多个label排版,动态长度及自动换行
- 《Head First-Chapter2》观察者模式
- 02.Java 基础 - 继承
- 在Python中使用机器学习(1)—安装四库
- shell编程
- leetcode 39 Combination Sum
- Mesos shuffle service unusable in Spark1.6
- 【BZOJ1009】【codevs2325】GT考试,kmp+矩阵加速DP
- 固有値、固有ベクトル
- 论坛收录贴
- ZOJ 3946 Highway Project 优先队列dijk
- hadoop学习
- leetcode 343. Integer Break