基础
执行
# 方式一bash hello.sh# 方式二chmod +x hello.sh./hello.sh
变量
变量名和等号之间不能有空格
- 定义变量
your_name="qinjx"for file in `ls /etc`
- 使用变量
# 使用$your_name${your_name}
- 删除变量
unset your_name
字符串
单引号任何字符都会原样输出, 双引号里可以有变量
- 操作
# 拼接字符串your_name="qinjx"greeting_1="hello, ${your_name} !"# 获取字符串长度:string="abcd"echo ${#string} #输出:4# 提取子字符串string="alibaba is a great company"echo ${string:1:4} #输出:liba
while
i=1while ((i<=3))doecho $ilet i++ #循环变量递增done
for 循环
# 方式一for N in 1 2 3; do echo $N; done# 方式二for ((i = 0; i <= 5; i++))doecho "welcome $i times"done
if判断
read -p "please input your name:" NAME ## read命令用于从控制台读取输入数据## printf '%s\n' $NAMEif [ $NAME = root ]thenecho "hello ${NAME}, welcome!"elif [ $NAME = itcast ]thenecho "hello ${NAME}, welcome!"elseecho "SB, get out here!"fi= ==!= !=-eq ==-ne !=-gt >-lt <-ge >=-le <=! !-o ||-a &&
case
echo '输入 1 到 4 之间的数字:'echo '你输入的数字为:'read aNum # 命令行读取一个数据赋值给aNum变量case $aNum in1) echo '你选择了 1';;2) echo '你选择了 2';;3) echo '你选择了 3';;4) echo '你选择了 4';;*) echo '你没有输入 1 到 4 之间的数字';;esac
文件包含
#! /bin/bash. ./test1.sh# source ./test1.shecho "姓名: $name"
函数
#!/bin/bashshow(){echo "当前脚本名称:$0"echo "第一个参数:$1"echo "第二个参数:$2"echo "第三个参数:$3"echo "参数数量:$#"echo "所有参数(整体string):$*"echo "所有参数(列表"",""):$@"echo "当前进程编号:$$"return 2 # 0-255的状态码}show first second # 执行函数echo "返回值: $"# 执行结果:# 当前脚本名称:./func.sh# 第一个参数:first# 第二个参数:second# 第三个参数:# 参数数量:2# 所有参数:first second# 所有参数:first second# 当前进程编号:19702# 返回值: 2
