脚本编程Bash Shell

脚本编程Bash Shell

1.概念:

Shell脚本是包含一系列命令的文本文件
Shell读取此文件并执行命令

2.应用场景:

重复性操作
批量事务处理
自动化运维
定时任务执行

3.每一个shell要有开头的定义,正常是

#!/bin/bash

4.打印

echo ‘要打印的东西’

5.定义好的脚本需要加上执行权限

chmod +x 脚本路径

6.三种调用方式

(1)路径调用:如果在当前目录,则使用./test.sh,绝对路径也可以
(2)普通脚本执行:sh 脚本路径
(3)指定b shell 执行:/bin/bash 脚本路径

7.变量的定义

(1)直接赋值法:a=1 b=”abc”
(2)数组:
①vi编辑器:

#!/bin/bash
arr=(1 2 3 4 10)
echo $arr
echo ${arr[0]}
echo ${arr[4]}
echo ${arr[@]}

②输出结果:

[root@cent01_c]# ./array.sh
1
1
10
1 2 3 4 10

③所以直接打印数组显示的是第一个值,而不是所有的值
arr[@]则可以打印数组所有的结果
(3)引用赋值法:b= a c = a c= ac={b}
(4)引用命令执行结果的赋值:a=ls -l

8.预定义变量

(1)$n:$0代表命令本身,$1-$9代表顺序参数编号,大于10的话使用括号,如${10}
$# 命令行参数或位置参数的数量
$? 最近一次执行的命令或shell脚本的出口状态
$* 表示所有的位置参数,其值是所有位置参数的值
$- 显示Shell使用的当前选项
@ 与 @ 与 @*相同,但不同之处是, @ 分 割 成 一 个 个 字 符 串 , 而 @分割成一个个字符串,而 @*是一个整的字符串
(2)定义vi编辑器:

#!/bin/bash
echo $0
echo $@
echo $-
echo "first args:$1"
echo "args count is:$#"
echo "all args:$*"::

(3)输出结果:

[root@cent01_c]# ./args.sh 15 abc 9da5w
./args.sh
15 abc 9da5w
hB
first args:15
args count is:3
all args:15 abc 9da5w

9.执行变量的运算

b=expr $a + 1 b=$(( a + 1 ) ) b = a + 1 )) b= a+1))b=[ $a + 1 ]
(1)再判断条件中使用计算:在中括号内侧及运算符两边都要加空格
10.Shell流程控制(!!流程代码均可以写成一行,但要用 ; 分割)
(1)if else

①单if:if 判断语句
then 代码 
fi
②if else:if 判断语句 
then 代码 
else 代码 
fi
③if else-if else:#!/bin/bash
a=$1
if [ $a -lt 10 ]
then
echo 'less than 10'
elif [ $a == 10 ]
then
echo 'equals 10'
#else
echo 'great than 10'
fi

(2)case:

#!/bin/bash
a=$1
case $a in
1)echo ‘$a is 1’
;;			--;;表示break
2)Echo ‘$a is 2’
;;
*) echo ‘nothing is chosed’
esac

(3)while:

#!/bin/bash
a=1
while [ $a -le 10 ]
do
echo $a
#a=$[$a+1]
Let a++
done

(4)for :

#!/bin/bash
b=1
for ((;;))
do
if [ $b -gt 10 ]
then
break
fi
echo $b
let b++
done

或者将条件写入for的判断中

#!/bin/bash
for ((b=1;b<=10;b++))
do
echo $b
done

(5)until:直到满足条件为止

#!/bin/bash
a=1
until [ $a -eq 10 ]
do 
echo $a
let a++
done

11.数值型

大于:-ge 小于:-lt 等于:-eq或== 不等:-ne

12.字符串型

等于:=或== 不等:!= 是否为空:-z 字符串
13.if条件语句可省略成:[[ 条件语句 ]] && 结果语句 || 结果语句
true为&&后的结果,false为||后的结果
14.在单引号中不能直接用${a}引用变量,而双引号中可以

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值