shell语法及实现进度条

1.shell脚本
(1)写shell脚本的注意事项;
①创建一个以.sh结尾的文件;
②赋予可执行权限x给这个shell脚本;
③使用#!/bin/bash指明该叫脚本的解释器;
④shell脚本中每行写一条命令,要将多个命令写在一行时,使用;分号隔开;
⑤shell脚本中使用#注释;
⑥当没有给脚本赋可执行权限时,可以使用这些方法执行shell脚本:
bash ./test.sh
/bin/bash test.sh
bash test.sh

(2)shell变量
①不需要定义,可以直接使用;
②给变量赋值时,等号两端不能有空格,是否有空格取决于是不是一条命令;
③取变量的值时,必须加$符号;
④当打印一个没有赋值,没有使用过的变量时,会打印出一个空串;
⑤使用变量进行字符串拼接时,要添加{ };
⑥环境变量可以被当前子进程继承,当做全局变量;本地变量只在当前进程中有效;

(3)文件名代换(通配符)
* :匹配多个字符;
: 匹配一个字符;
[ ] :匹配方括号中任意一个字符只出现一次;

(4)命令代换
倒引号` ` $( ):现将命令中的内容执行,再将内容替换到代码所在地,交给外层显示;

(5)算数代换
$(( )):只能做整数的+ - * /,如:res=$(( sum+1 ))

(6)转义字符(与在c语言中的应用相同)
创建一个叫做$ $的文件: touch \$\ \$
创建一个叫做-file的文件: touch - - -file(- -表示注释掉命令选项)

(7)单引号、双引号
把单引号中的内容会当做字符串执行,而会对双引号中的一些命令进行解析;

(8)shell的测试命令:test 和[ ]
①shell中整数的比较与其他语言不同,使用 :
这里写图片描述
②shell中的字符串比较可以使用==,!=
③read 表示读取标准输入,如 read x
④shell脚本中的判断结果与C语言完全相反,0表示真,1表示假;
⑤逻辑与或非:与-a,或-o,非!

2.shell语法
(1)if语句
①形式:if-then-elif-else-fi
②i语句是根据退出码判断的
③shell中的if语句支持嵌套
④代码块不能为空,若不想做任何处理,可以使用冒号:
⑤if ! : 相当于注释,不处理if后面的语句;
⑥ if也可以使用[[ ]]进行测试,它支持正则表达式和通配符,而[ ]不支持;
⑥&&,||用于两条命令的连接,而 -o -a用于两个测试条件的连接;

(2)case语句:
C语言中switch-case可以检测整型和字符串,而shell中的case语句 可以检测任何类型的数据,包括正则表达式和通配符;

(3)for循环
for循环中使用(( ))时,可以写为c语言的形式;
使用for in时,是直接给定范围的,不需要累加,也很难出现死循环;

(4)while和until循环
while:只要条件成立,就一直循环;
until:只要条件不成立,就一直循环;

3.shell函数
①定义函数时,可以省略function,但不能省略括号();
②调用函数时,只写函数名,不写括号;
③shell中的变量定义时,默认在整个bash中有效,如果要让变量只在函数内部有效,可以使用local修饰;
④返回函数调用码时(echo 0),不能打印其他语句,否则命令代换后无法进行条件判断是否调用成功;

4.数组
目前bashe只支持一维数组,是序列式的容器:
echo ${myarr[1]} —— 打印一个数组元素;
echo ${myarr[@]} 或 echo ${myarr[*]} —— 打印所有数组元素;
echo ${#myarr[*]} —— 提取数组元素个数

5.使用shell实现一个进度条:
这里写图片描述

效果如图所示:
这里写图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值