前言: 学习环境,linux版本 ubuntu ;
1. 执行shell脚步方式
第一种方式: sh + test.sh[脚步文件名]
第二种:
chmod a+x test.sh ;给文件加可执行权限
./test.sh ; 直接执行脚步文件
2. 脚步文件的格式
第一行必须是 #!/bin/bash :意义是开头使用bash执行文件
3.执行多个shell命令或者脚步;
第一种方式: 命令1;命令2;命令3 : 多个命令用 ;号分隔
第二种方式: 将多个命令依次放在 .sh结尾的脚本里
4. 在输出设备打印信息
第一种: echo + 信息
注意:可以不加引号|可以加单引号|可以加多引号
双引号:可以解析变量
第二种: printf
printf "%-5s %-10s %4.2f" : % 替位符 -代表宽带 5s:5个字符串位置 4.2f :4个字符宽,保留两位小数
5.变量
变量分为系统变量/环境变量/局部变量
系统变量是 linux系统带有的变量
环境变量是全局可使用的变量 通过 env命令可以获取
局部变量是定义在当前文件的变量
普通变量存取的值都是字符串
声明方式: var=value ; 变量名等于值,等于号两侧不能有空白字符
声明的变量可以通过 $var调用:$+变量名
可以将命令执行结果赋值给变量:res=$(linux命令)
获取变量字符串数量:${#var}
特殊的变量值:
$SHELL: 当前shell版本
$UID: 当前用户名
6.关于数学运算
例如:
no1=1
no2=2
a 用过let方式: let res=no1+no2
b 用过$[]方式: res=$[ no1 + no2 ]
c 使用$(())方式 : res=$(( no1 + no2 ))
变量左右留有空格
7. 关于文件描述符和重定向
常见文件描述符有 stdin,stdout,stderr 代表的数字分别是0 1 2
可以通过 > ,< , >>,<<,&> 等符号重定向
例如命令:
ls -al >test.txt
会将输出结果内容存到test.txt文件中「替换的方式」
ls -al +>test.txt
会将输出结果内容存到test.txt文件中「追加的方式」
8. 关于数组
数组分为普通数组和关联数组
普通数组:
声明方式 : arr=(1 2 3 4 5 4) ; 数据以空格隔开
读取值:${arr[0]}
打印所有值: ${arr[*]} | ${arr[@]}
获取数组长度:${#arr[*]}
关联数组:
声明方式:
declare -A arr
arr = ( [name] = zhuzhanwei [age]=30)
获取值: arr[name]
获取索引:${!arr[*]}
获取值: ${arr[*]}
9.获取终端信息
获取终端列数 :tput cols
获取终端行数: tput lines
获取终端名城:tput longname
终端光标位置:tput cup
光标开始位置: tput sc
光标当前位置: tput rc
光标回到开始位置: tput ed
10 关于函数
声明方式:
第一种: function funName (){
echo 'hellow world'
}
第二种:
funName(){
echo 'hellow world'
}
执行方式:
funName #直接调用函数名
传参方式:
funName(pram1){
echo 'hellow world'$pram1
}
传参调用:funName 11
特殊变量含义:
$0 :函数名
$1: 第一个参数
$2:第二个参数 $3,$4以此类推
$@:各个参数组成的数组
$*:各个参数拼的字符串
$#:参数数量
11.关于循环
for循环:
for var in $var ;
do
执行的操作
done
while循环:
while 条件
do
执行操作
done
12:关于判断
if 条件 ;
then
执行动作
fi
多个判断“
if 条件;then
执行命令
elif 条件 ;
执行动作
then
执行动作
fi