shell编程基础
shell编程一小时光速入门
web集群架构会用到shell编程基础
1、为什么要学shell编程?
Linux系统中 会大量的使用shell,工作中我们也需要自动化实现业务。
例如:自动备份、监控、自动安装服务。
shell编程是Linux运维人员必须要会的编程语言。最简单的编程语言。
编程也是运维人员必须具备的本领:
shell、Python是运维人员必须具备的本领。
2、什么是shell?
shell 就是一个解释权,命令行的命令以及脚本都会通过shell解释,传给操作系统,处理后再输出给用户。
3、shell的分类
3.1、Bourne shell
Bourne shell又包括Bourne shell(sh)、Korn shell(ksh)、
3.2、C shell
C7支持的解释器
/bin/bash
/usr/bin/sh
4、C7:默认shell
/bin/bash
5、什么是shell脚本?
程序、命令放入文件里执行,这个文件称之为shell脚本文件。
工作中最多的编程写脚本,存放在文件里。
6、shell变量:
a:全局变量(环境变量)
在整个系统中生效、一般是大写、系统中默认就存在一些这样的变量,满足系统和程序运行的需求。
系统自带的环境变量;
echo PATH、echo
UID
自定义环境变量:
方法一:(临时生效)
export OLDBOY="I anm oldboy"
方法二:
OLDBOU="I anm oldboy"
echo $OLDBOY
永久生效:
安装java服务的时候就会配置环境变量
b:局部变量(普通变量)
是编写shell脚本最常用的变量。
变量名=值
a=1
变量名:数字、字母、下划线,不能是数字开头。
= 等号:赋值符,把什么东西给谁。
值:东西,变量内容。
引用内容的符号:单引号、双引号、反引号、不加引号。

(再赋值一次,会覆盖)

7、表达式
[ 表达式 ]中括号表达式,中括号里面两边必须要有空格。
字符串要加双引号
[root@waiwai ~]# [ "a" = "b" ] && echo 1||echo 0
[ "a" = "b" ] && echo 1||echo 0如果表达式成立,打印1,否则打印0
[ "a" = "b" ] && echo 1 如果表达式成立,打印1
[ "a" = "b" ] || echo 1||echo 0 如果表达式成立是假的,打印0
整数表达式:
> -gt
>= -ge
< -lt
<= -le
= -eq
不等于 -ne
1)、整数表达式符,两端必须要有空格。
2)、中括号里面两端必须要有空格。
3)、变量和比较的内容,不需要加引号
字符表达式:
-z:变量内容长度为0时,为真。(正确)zero
-n:变量内容长度【不】为0时,为真(正确)。not zero
a == a :字符串是否相同
说明
1)字符串要加双引号
例:
[root@waiwai ~]# oldboy="I am oldboy"
[root@waiwai ~]# [ -z "$oldboy" ] && echo 1 ||echo 0
0
[root@waiwai ~]# oldboy=""
[root@waiwai ~]# [ -z "$oldboy" ] && echo 1 ||echo 0
1
[root@waiwai ~]# [ -n "$oldboy" ] && echo 1 ||echo 0
0
[root@waiwai ~]#
判断句:
如果...那么。
if:判断语句法:
if [ 表达式 ]
then
命令
fi
如果 [ ***** ]
那么
******
书写脚本习惯:
1、以 .sh结尾。
2、脚本开头第一行 #!/bin/bash 脚本内容由谁解释。
由于Linux下默认是bash,所以也可以不写这一行。
实现多条件
read 命令:交互式读取用户输入
-p:"提醒:"
-t: 多长时间输入
[root@waiwai /server/scripts]# read -t 3 -p "请输入一句话: "
请输入一句话: [root@waiwai /server/scripts]# ls
特殊位置变量:
$1脚本文件的第一个参数赋值给$1
$2脚本文件的第二个参数赋值给$2
9、for循环
for n in 取值列表
do
执行命令
done
网友评论