shell命令以及shell脚本

Shell是用户与Linux操作系统交互的桥梁,主要用于编写脚本。文章介绍了如何创建和执行shell脚本,包括设置执行权限、使用解释器、内建命令echo以及变量和参数传递。此外,还讲解了文件测试运算符、命令的逻辑执行和输出重定向等概念。
摘要由CSDN通过智能技术生成

简单介绍shell

shell是一种C语言编写的程序,是用户操作Linux的桥梁.

shell脚本需要一个文本编译器和一个文本解释器.

一般shell脚本中的第一行是:

#!/bin/bash

这一行的作用是告诉你的系统这个脚本需要使用什么解释器执行

执行shell的方式

A:一般创建的脚本文件是没有赋予执行权限的(也就是没有x权限),可以使用:

chmod a+x 脚本名

来为文件赋予权限,a(all)也就是所有用户

B:或者将存放脚本文件的路径配置到环境变量中,但也要注意文件的权限

你可以直接使用bash或sh叫上文件名来执行,注意是要在该脚本目录中,其他目录下需要使用文件的绝对路径

C:,且也需要在文件同一目录下才能执行直接输入文件名执行

当然,为了方便,可以配置了环境变量,然后使用sh 叫加文件名,这样无论在哪个目录都可以执行

echo

echo是shell的内建命令,用来输出.

echo命令\转义符,可以将特殊字符转变为普通字符,也可以将普通字符转变为特殊字符""\

如果相见需要将普通字符转为特殊字符,需要

echo -e "\n"

\n换行符

\tab制表符

\c不换行

$ 表示引用变量

``反引号,反引号里面的命令会优先执行,将执行结果返回到命令所在的位置,作用等同于( )

shell变量

注意:赋值等号两边不能有空格!

可以使用字母,下划线开头,不建议使用下划线开头

后面由字母,数字,下划线的任意组合构成

不能以数字开头

不能使用标点符号

不能使用bash的关键字

unset name # 删除变量name

默认情况下所有的环境变量都是大写!

  • 查看系统的环境变量

  • env

  • set

包含环境变量,自定义变量

  • export

可以用来显示环境变量,也可以用来设置环境变量

单引号中的所有字符都会原样输出,单引号中的变量是无法引用的.

脚本传参

在执行shell脚本时,可以进行传参

在脚本内获取参数使用: $n

$0# 当前执行的shell脚本的文件名

$1# 第一个参数

$2# 第二个参数

$n# 第n个参数

特殊字符:

$## 传给脚本的参数总和,一共有几个参数

$*# 将所有的参数组合成一个字符串输出

$@# 输出所有的参数,是多个字符串

每一个命令执行成功与否,可以使用$?来查看

如果前一个命令执行成功,$?返回0

如果前一个命令执行失败,$?返回非0的值

exit可以让程序中断,并回传一个状态码给系统.

在考虑命令相关性的情况下:

命令1 && 命令2

1.如果命令1执行成功,则执行命令2

2.如果命令1执行失败,则不执行命令2

命令1 || 命令2

1.如果命令1执行成功,则不执行命令2

2.如果命令1执行失败,则执行命令2

11.5 文件测试运算符

-s # 判断文件大小是否大于0

-e # 判断文件是否存在,存在返回0

# 判断文件类型

-L # 判断文件是否存在且为链接文件(编写脚本时,优先判断是否是链接文件)

-f # 判断文件是否存在且为普通文件

-d # 判断文件是否存在且为目录

# 判断文件权限

-r # 判断文件是否可读

-w # 判断文件是否可写

-x # 判断文件是否可执行

read命令

read的作用: 读取来自键盘的输入的数据.

语法:

read [选项] 变量

-p "提示信息"

-t 秒数# 指定超时时间(如果没有在指定时间内输入,则直接结束)

-s # 隐藏输入的信息

sh [选项] 脚本文件名

-n检查是否存在语法错误

-v运行脚本之前,先将脚本的内容输出到屏幕上

-x将脚本运行中使用到的代码输出到屏幕上

输出重定向

什么是输出重定向?

将原本应该输出到屏幕上的信息,输出到文件或者某些装置设备中.

输出分类:

标准输出: 命令执行成功所回传的正确信息

标准错误输出: 命令执行失败所回传的错误信息

处理标准输出与标准错误输出用到的代码与特殊字符:

标准输出:

1> , 1>> # 1可以省略: > >>

标准错误输出:

2> , 2>> # 2不能省略

> 覆盖

>> 追加

如果要将标准输出和标准错误输出都输出到同一个文件中则使用: &>

cat sh01.sh file &> stdout.log

/dev/null # 黑洞装置, 可以将不需要的信息输出到该装置中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值