Linux基础--Shell命令解释器

Linux提供的Shell解析器

bash和sh的关系

  • sh是bash的一个软链接

注意:Centos默认的Shell解析器是bash

定义bash变量

  • 环境变量名建议大写

  • 等号两侧不能有空格,如果有空格,则需要使用双引号或单引号括起来

  • 定义时不用加$符号,使用时需要加$符号

1是查看现在username,2是删除现在username

定义数组

  • 数组名=("项" "项"):无逗号隔开

set查看所有的变量

set

unset取消变量的设置

unset 变量名

export将局部变量提升为全局

export 变量名

Bash变量引号的使用

  • 没有引号

    对纯字符没有印象

    dog='金毛'或者dog=金毛或者dog="金毛"都可以声明

  • 用单引号:不会解析变量,字符串始终被解释为它本身

  • 用双引号:会解析变量

  • 将命令的结果保存到变量中(避免使用反引号)

变量名=$(命令)

特殊的变量名

  • $n:给脚本传参

$1~$9代表第一到第九个参数,10以上的参数需要使用{},如${10}

demo2.sh是$0的参数(即脚本名),a是$1的参数,a是$1的参数,b是$2的参数

  • $#:获取传参的个数

  • $*:拿到参数的所有数据(看成整体)

  • $@:拿到参数的所有数据(每个参数区分对待)

  • $?:查看上一次命令或者脚本的执行状态的结果是否有问题(0-->正确 非0-->错误)

运算符

$((运算式))或者$[运算式]或者expr +、-、\*、/、%(要有空格)

逻辑运算符

[条件] ✔ 注意:[]里面前后必须要有空格

  • 两个整数之间比较

  • 按照文件权限进行判断

  • 按照文件类型进行判断

  • 多条件判断

&&表示前一条命令执行成功时,才执行下一条命令

||表示前一条命令执行失败后,才执行下一条命令

1前面是正确的,与"对" 与,输出"对" ;2前面是错误的,与"对" 与,不输出

正则表达式

  • 常规匹配cat /etc/passwd | grep root

  • 特殊字符

    • ^ :会匹配/etc/passwd中以root开头的⾏

    • $:匹配出/etc/passwd中以bash结尾的⾏

    • . : .匹配⼀个任意字符,如下,可以匹配含有四个字符,其中第1个字符是r,第4个字符是t的⾏,中间两个 可以是任意字符

    • *: *不单独使⽤,他和上⼀个字符连⽤,表示匹配上⼀个字符0次或多次,如下,可以匹配第1个字符是r, 最后1个字符是t,中间可以包含任意数量的o

    • 字符区间 []: []表示匹配某个范围内的⼀个字符

    [6,8]匹配6或者8
    [0-9]匹配一个0-9的数字
    [0-9]*匹配任意长度的数字字符串
    [a-z]匹配一个a-z的字符
    [a-z]*匹配任意长度的字母字符串
    [a-ce-f]匹配a-z或者e-f之间的任意一个字符

    例:

    1是在0-9之间;2和3是在0-9之间且后面是数字3或6的;4是a-z之间且后面是数字0-9的

  • 例:找出所有包含‘ $’ 的⾏

  • 特殊字符 \ :匹配某⼀特殊字符本身

条件选择\判断

条件选择if

  • [ 条件判断式 ] :中括号和条件判断式之间必须要有空格

  • if后面要有空格

demo3.sh脚本内容:

结果展示:

条件判断case

注意:行尾必须为单词in ; 双分号";;"表示命令序列结束 ; 最后的*)表示默认格式,相当于java中的default

循环(4种)

for循环

例如:100以内的累加并输出结果

$@最终会被""解析为一个数组每个元素都是传入的参数

$*最终会被""解析为一个连续的字符串只有一个元素

while循环

until 循环

例如:100以内的累加并输出结果

select循环与菜单

例:菜单

 

continue结束本轮循环,进入下一轮循环;break提前结束循环

read读取控制台输入

-p: 指定读取值的时间

-t:指定读取时等待的时间(秒)

例:计算输入的是不是一个质数

 

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值