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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一、什么是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。

1for语句

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

②语法规则

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

2while语句

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

②语法规则

while  condition条件  
    do
    statements命令
done

③用法示例

3until语句

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

②语法规则

until condition条件
do  
    statements命令
done

4case语句

①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

如有错误敬请指正。

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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: shell