shell程序设计(第一、二节)

一、什么是shell

  1. 定义

shell是一个作为用户与Linux系统间接口的程序,它允许用户像操作系统输入需要执行的命令。

2.功能

①执行命令 ②调用Linux工具 ③编写程序

3.特点

速度运行快、效率高。

4.类型

(1)编译型:二进制可执行程序,指令,直接执行。xx.c ->xx.exe xx 二进制只指令——直接执行;

(2)解释型:需要解释器,文本。xx.sh xx.py 解释器 Python、bash;解释型执行文件需要一个解释器,解释执行。

二、shell的语法

  1. 变量:本地变量、环境变量、参数变量。

(1)本地变量:在默认情况下,所有变量都被看做字符串并以字符串来存储。

(2)环境变量:当一个shell脚本程序开始执行时,一些变量会根据环境设置中的值进行初始化。这些变量通常用大写 字母做名字,以便把它们和用户在脚本程序里定义的变量区分开来,后者都用小写字母做名字。

②常用的环境变量如下:

(3)参数变量:如果脚本程序在调用时带有参数,一些二外的变量就会被创建。即使没有传递任何参数,环境变量$#也依然存在,此时它的值为0。

②参数变量如下:

2.条件:字符串比较、算术比较、文件测试(如:&& ||)。

在实际工作中,大多数脚本程序都会使用shell的布尔判断命名[或test。为了增强可读性,还会使用符号]来结尾。

test命令的用法:

if test -f fred.c
then
...
fi
if [ -f fred.c ]
then
...
fi

注意:符号和被检查的条件之间留出空格。如果把test和if放在同一行上,就必须用一个分号;把test语句和then分隔开。

(1)字符串比较
(2)算术比较
(3)文件条件测试

3.循环:for、while、until、bash。

(1)for语句

①在默认情况下,所有的shell变量值都被认为是字符串,而for结构循环能够处理一组值,这组值可以使任意字符串的集合。

②语法规则:

for variable(变量) in values(值)
do
    statements(命令)
done

(2)while语句

①如果需要重复执行一个命令序列,但事先又不知道这个命令应该执行的次数,通常使用while语句。

②语法规则:

while  condition(条件)  
    do
    statements(命令)
done

③用法示例:

(3)until语句

①一般来说,如果不需要执行循环,就选用until循环;如果需要至少循环一次,就使用while循环。

②语法规则:

until condition(条件)
do  
    statements(命令)
done

(4)case语句

①case结构允许通过一种比较复杂的方式将变量的内容和模式进行匹配,再根据匹配的模式去执行不同的代码。

②语法规则:

case variable in
    pattern [ | pattern] ...) statements;;
    pattern [ | pattern] ...) statements;;
    ...
esac
注意:每个模式行都已双分号;;结尾

③例题演示:用case结构编写一个新版的输入测试脚本程序,让它更具有选择性并且对非预期输入也更宽容。(不区分大小写)

while true
do
    echo "input"
    read line

    case "$line" in
        //输入y或Y或yes或YES
        [yY]|[yY][eE][sS] ) echo "this is yes";;
        [nN]|[nN][oO] ) echo "this is no";;
        end ) break;;
        *) echo "***";;
    esac
done

如有错误,敬请指正。

您的收藏与点赞都是对我最大的鼓励和支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sweep-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值