Shell脚本(上)

目录

一、Shell脚本的构成

1.脚本解释器

2.注释信息

3.可执行语句

二、Shell脚本的执行

1.指定路径

2.指定shell来执行脚本

①sh执行

②source执行

三、变量类型

1.环境变量

2.位置变量

3.预定义变量

4.自定义变量

四、引号的作用

1.双引号

2. 单引号

3. 反撇号

五、重定向

1.重定向输入 <

2. 重定向输出

① >

② >>

3.标准错误输出

① 2>

② >>

4.混合输出

① &>

② 2>&1

5.重定向交互式硬件设备

六、简单脚本

1.输入圆半径,求面积

2.输入圆直径,如果奇数输出圆面积,否则输出请输入奇数


一、Shell脚本的构成

1.脚本解释器

一般第一行会被用来进行脚本申明,表示此脚本是通过什么程序来进行解释执行的。

#!/bin/bash是默认解释器。

2.注释信息

以“#”开头的行为注释行,在脚本运行时不会被执行,一般用来注释脚本的作用,注释等信息。

3.可执行语句

实现脚本功能的语句。

二、Shell脚本的执行

1.指定路径

当文件给予执行权限时,可以通过绝对路径和相对路径的方式执行脚本。

2.指定shell来执行脚本

①sh执行

通过sh + 脚本路径的方式来执行脚本

②source执行

通过source + 脚本路径的方式来执行脚本

PS:通常情况下脚本的执行都是放在脚本环境中运行,但是通过source可以将脚本加载到系统环境中执行。

三、变量类型

1.环境变量

环境变量由系统提前创建,用来设置用户的工作环境。env可以查看当前工作环境下的环境变量

readonly 设置变量为只读变量

2.位置变量

当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数按照从左到右的顺序依次赋值给位置变量。

3.预定义变量

系统内置变量。

$*:把所有参数看成以空格分隔的一个字符串整体。

$@:把各个参数加上双引号分隔,每个参数独立。

$0:表示当前执行的脚本或命令的名称。

$?:表示前一条命令或脚本执行后的返回码。0表示执行成功,其他表示失败。

$#:表示命令或脚本要处理的参数个数。

$RANDOM:输出一个随机数。(取值在0到32767)

4.自定义变量

变量名=变量值 (把变量值赋值给变量名)

变量名:临时存放数据的地方

变量值:临时的可变化的数据

PS:

①定义变量时,变量名不加$符号

②命名只能使用英文字母,数字和下划线,首个字符不能以数字开头

③中间不能有空格,可以使用下划线

④不能使用标点符号

⑤不能使用bash里的关键字

四、引号的作用

1.双引号

允许通过$符号引用其他变量值

2. 单引号

 禁止引用其他变量值,特殊含义字符视为普通字符

3. 反撇号

命令替换,提取命令执行后的输出结果作为变量。

反撇号难以在一行命令中实现嵌套命令替换操作,这时可以改用$()来替代反撇号。

五、重定向

1.重定向输入 <

从指定的文件读取数据

2. 重定向输出

① >

将标准输出结果保存到指定文件,覆盖原文件内容。

② >>

将标准输出结果追加保存到指定文件,不覆盖原文件内容,追加写到文件末尾。

3.标准错误输出

① 2>

将错误信息保存到指定文件,覆盖。

② >>

将错误信息追加到指定文件尾部,不覆盖。

4.混合输出

① &>

将标准输出、错误输出保存到同一个指定文件中。

② 2>&1

将标准错误输出重定向到标准输出。(可以简单理解为把错误输出到混合,然后输出到标准)

5.重定向交互式硬件设备

类型设备文件文件描述编号默认设备
标准输入/dev/stdin0键盘
标准输出/dev/stdout1显示器
标准错误输出/dev/stderr2显示器

六、简单脚本

1.输入圆半径,求面积

 

2.输入圆直径,如果奇数输出圆面积,否则输出请输入奇数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值