Linux之Shell编程

Linux之Shell编程

一 shell的变量

  1. 变量的介绍
    (1)系统变量:如 $HOME,$SHELL,$USER
    (2)自定义变量:用户自定义的变量
    (3)显示当前shell中所有变量:set

  2. shell变量的定义
    (1)定义变量:变量=值
    (2)撤销变量:unset 变量
    (3)声明静态变量:readonly 变量
    (4)定义变量的规则

    ① 变量名称可以有字母、数字和下划线组成,但是不能以数字开头
    等号两侧不能有空格
    变量名称一般为大写

    (5)将命令的返回值赋给变量

    ① 使用反引号:A=`ls-la`
    ② 使用括号:A=$(ls-la),等价于反引号

    (6)设置环境变量

    ① 将shell变量输出为环境变量
    export 变量名=变量值
    ② 让修改后的配置信息立即生效
    source 配置文件
    ③ 查询环境变量的值
    echo $变量名

    (7)位置参数变量
    使用位置参数变量可以获取命令行的参数信息

    ① $n:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,${10}
    ② $*:代表命令行中所有的参数,把所有的参数看成一个整体
    ③ $@:代表命令行中所有的参数,把每个参数区别对待
    ④ $#:代表命令行中所有参数的个数

    (8)预定义变量

    ① $$:当前进程的进程号PID
    ②$!:后台运行的最后一个进程的进程号PID
    ③ $?: 最后一次执行的命令的返回状态,命令正确执行返回0,否则返回非0

二 运算符

  1. 基本语法
    (1)“$((运算式))”或“$[运算式]”
    (2)expr m + n,注意运算符间要有空格
    (3)expr m - n
    (4)expr * ,/, %乘除取余

三 条件判断

  1. 判断语句
    (1)基本语法

    [ condition ]:注意condition前后要有空格,非空返回true,可用$?进行验证

    (2)常用判断条件

    -lt:小于
    -le:小于等于
    -eq:等于
    -gt:大于
    -ge:大于等于
    -ne :不等于
    -r:有读的权限
    -w:有写的权限
    -x:有执行的权限
    -f:文件存在并是一个常规的文件
    -e:文件存在
    -d:文件存在并是一个目录

  2. 流程控制
    (1)if判断

if [ 条件判断式 ];then
 程序
fi
#或者(推荐使用)
if [ 条件判断式 ]
 then
  程序
 elif [ 条件判断式 ]
  then
   程序
fi
#注意中括号之间有空格

(2)case语句

case $变量名 in
"值1")
 如果变量的值等于值1,则执行程序1
 ;;
"值2")
 如果变量的值等于值2,则执行程序2
 ;;
…省略其他分支…
*)
 如果变量的值都不是以上的值,则执行此程序
 ;;
esac

(3)for循环

#语法一:
for 变量 in 值1 值2 值3…
 do
  程序
 done
#语法二:
for (( 初始值;循环控制条件;变量变化 ))
 do
  程序
 done

(4)while循环

while [ 条件判断式 ]
 do
  程序
 done

四 函数

  1. read读取控制台输入

    read(选项)(参数)
    -p:指定读取值时的提示符
    -t:指定读取值等待的时间
    参数为指定读取值的变量名

  2. 系统函数
    (1)basename基本语法
    返回完整路径最后/的部分,常用于获取我文件名

    basename [pathname] [suffix]
    basename [string] [suffix]
    suffix为后缀,如果其被指定,basename会把pathname或string中的suffix去掉,获取文件名

    (2)dirname基本语法
    返回完整路径最后/的前面部分,常用于返回路径部分

    dirname 文件绝对路径
    从给定的包含绝对路径的文件名中去除文件名,然后返回剩下的路径

  3. 自定义函数
    (1)基本语法

[ function ] funname[()]
{
	Action;
	[return int;]
}
#调用函数:
funname []
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值