shell
查看系统中使用的shell类型:echo $SHELL
指定解析器:#!/bin/bash
脚本文件的执行:
-
bash shell.sh
-
chmod +x shell.sh
./shell.sh
-
shell.sh
变量分类:只有字符串
-
环境变量:
-
查看环境变量:
- env / echo $环境变量名
-
添加环境变量:
-
export 环境变量名=$环境变量名:新路径
(只对当前终端可见,属于临时添加) -
vim /etc/profile
将 export 环境变量名=$环境变量名:新路径写入文件的末尾
(该方法添加的环境变量对所有用户可见) -
vim ~/.bashrc
将 export 环境变量名=$环境变量名:新路径
写入文件的末尾
(该方法添加的环境变量只对当前用户可见)
-
-
-
特殊变量
- $#:表示向shell程序传参的个数,不包含$0
- $*:列出命令行传参的值,不包含$0
- $@:列出命令行传参的值,不包含$0
- $?:检测上一条shell指令是否执行成功,成功输出0失败输出非0
-
自定义变量
-
定义变量赋值时,=两边不留空格
-
表达式:
- var=$((1+2))
- var=$[1+2]
-
测试表达式:
- [ 表达式 ] 留空格
- 运算符:
- 大于: -gt
- 小于: -lt
- 等于: -eq
- 大于等于: -ge
- 小于等于: -le
- 不等于: -ne
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QA6OUa42-1636622145569)(C:\Users\xiaop\Desktop\clipboard(1)].png)
-
shell 中的输入输出:
-
echo “输出内容”
echo $变量名
echo “字符串”>文件名 将字符串写入文件,会将之前的数据覆盖
:>文件名 清空文件内的内容
-
printf:
printf"输出内容"
printf $变量名
-
“”:可以引用变量和输出内容
-
‘’:引起来的部分,会取消特殊的变量的含义
-
``:保留shell指令在shell脚本中的原有功能
-
shell中的输入操作:
read:
read 变量名
-
-
流程控制语句:
-
分支语句:
# 单分支 if [ 测试语句 ] then 语句; fi # 双分支 if [ 测试语句 ] then 语句; else 语句; fi # 多分支 if [ 测试语句 ] then 语句; elif [ 测试 ] then 语句; else 语句; fi
-
switch:
case 变量值 in result1)语句 ;; result2)语句 ;; esac
-
循环语句:
for $变量 in 值列表 do 循环语句 done for((;;)) do 循环语句 done for 变量 in `seq 起始值 末位置` do 循环语句 done
-
while:
while [ ] do 循环语句 done until [] do 语句 done
-
select:
select var in ... do 语句 done
-
函数:
function 函数名() { } 函数明 $1 $2 ...
-
数组:
数组名=(元素值) echo ${num[1]} echo ${num[@]:2:2} echo ${num[*]}
函数:
function 函数名()
{
}
函数明 $1 $2 ...
-
数组:
数组名=(元素值) echo ${num[1]} echo ${num[@]:2:2} echo ${num[*]}