Shell编程,基础知识总结!

一、shell
1、创建文件设置权限

① touch kb0802.sh
② chmod u+x kb0802.sh
1)#!/bin/bash
2)echo 'hello world'
3:x
③ ./kb0802.sh

在这里插入图片描述
2、变量类型及创建变量
① 系统变量 set方法显示所有系统变量
常用系统变量如下:

$PATH $PWD $USER $UID $HOME $HOSTNAME

②自定义变量
  1)数据类型:
     a. 弱类型(通常为字符串、数值)
     b. 数组(【val1,…,valn】)
  2)声明变量:VAR=VALUE
     a. 变量命名组成规则同java常量
     b. =两侧不能有空格
③ 赋值
     a. A=133
     b. A=henry ‘Henry Chen’ “1 and 2”
Shell编程,基础知识总结!_第1张图片

     c. A=la -la(此处加模板字符串,因打不出来,可参照下图)<=> A=$(ls -la)

在这里插入图片描述
在这里插入图片描述

④ 取消变量:unset VAR

3、变量的作用域
 a. 环境变量:跨SHELL访问
 b. 全局变量:当前SHELL中访问
    a) 每个SHELL会话都是独立进程拥有独立PID,不同的SHELL会话之间不会相互交叉影响
    b) 函数中的变量more也是全局变量
 c. 局部变量:当前函数中访问
    a) 函数中声明局部变量:local A=5
 d. 预定义变量
    a) $? 最后一次执行命令的返回状态 0表示正常,其他表示异常
    b) $$ 当前进程的进程编号PID
    c) $!后台运行的最后一个进程编号PID
Shell编程,基础知识总结!_第2张图片
在这里插入图片描述
4、输出参数

V=$(ls -l|tr -s ' '|cut -d ' ' -f9)
for v in $V
do
 echo $v
done
echo $0
echo $1
echo $2

#输出参数数量
echo '参数数量:'$#

for v in $@
do 
 echo $v
done

Shell编程,基础知识总结!_第3张图片
5、控制台输入
① read -t SECONDS -p “提示” VAR
1)-t 超时(秒)
2)-p 提示
3)VAR 控制台输入值赋值的变量
(此处结合后续条件表达式一起举例)

6、运算符

①	算数运算符(+ - *% =  ==  !=)和算数表达式
1)运算符:同JAVA
2)表达式
a.	$((EXP))		S=$((2+3))
b.	$[EXP]		S=$[2*3]
c.	expr EXP		分布计算
注意:\*表示乘法,其他相同,运算符前后必须加空格
d.	let 简单表达式
②	关系运算符和条件表达式 condition 前后有空格
通常选择b方式
1[ condition ]		-eq -ne -gt -lt -ge -le
2)test condition		同上
3[[ condition ]]		同上
③	逻辑运算符
1)!	非
2-o	或
3-a	且

7、逻辑控制

①	分支结构
if [ condition ];then
语句块
fi 

if[ condition1 ]
then
语句块
elif[ condition2 ]
then
语句块
else
语句块
fi

case $VAR in
V1)
语句块
;;
V2)
语句块
;;
*)
语句块
;;
esac

②	循环
for VAR in val1...valn
do
语句块
done

for((初始化;条件;变化))
do
语句块
done

while[ condition ]
do
语句块
done

例一
Shell编程,基础知识总结!_第4张图片
在这里插入图片描述
例二
Shell编程,基础知识总结!_第5张图片

在这里插入图片描述

你可能感兴趣的:(知识归纳,命令合集,shell)