【Linux】shell 脚本基础使用

在终端中输入命令可以完成一些常用的操作,但是我们都是一条一条输入命令,比较麻烦,为了解决这个问题,就会涉及到 shell 脚本,它可以将很多条命令放到一个文件里面,然后直接运行这个文件即可。
shell 脚本类似 Windows 的批处理文件 shell 脚本就是将连续执行的命令写成一个文件。
shell 脚本提供数组、循环条件判断的等功能。

创建一个 shell 脚本

shell 脚本文件名以 .sh 结尾,而且文件内容第一行必须为#!/bin/bash,创建方法如下;

vi my.sh

在这里插入图片描述

#!/bin/bash                //必须以此开头
echo "hello world"         //在终端显示

在这里插入图片描述
如何运行,在终端输入 ./my.sh 即可,需要添加可执行权限;
在这里插入图片描述

交互式 shell 脚本

shell 脚本和用户之间进行交互

输出 echo
输入 read

例一
在这里插入图片描述
在这里插入图片描述
例二
在这里插入图片描述
在这里插入图片描述

shell 脚本数值计算

仅支持整形,数值计算使用 $((表达式))

在这里插入图片描述
在这里插入图片描述
错误示例 (用等号赋值时,等号的前后均不能有空格)
在这里插入图片描述
在这里插入图片描述
改正(把等号前后的两个空格去掉)
在这里插入图片描述
在这里插入图片描述

test 命令

test 命令用于查看文件是否存在,查看权限,可以进行文件字符数值三方面的测试。

&& 和 || 命令
cmd1 && cmd2 :当 cmd1 执行完毕且正确,那么执行 cmd2,当 cmd1 执行完毕且错误,那么不执行 cmd2

cmd1 || cmd2 :当 cmd1 执行完毕且正确,那么不执行 cmd2,当 cmd1 执行完毕且错误,那么执行 cmd2

文件测试

-e 文件名	如果文件存在则为真
-r 文件名	如果文件存在且可读则为真
-w 文件名	如果文件存在且可写则为真
-x 文件名	如果文件存在且可执行则为真
-s 文件名	如果文件存在且至少有一个字符则为真
-d 文件名	如果文件存在且为目录则为真
-f 文件名	如果文件存在且为普通文件则为真
-c 文件名	如果文件存在且为字符型特殊文件则为真
-b 文件名	如果文件存在且为块特殊文件则为真

在这里插入图片描述
在这里插入图片描述

字符测试

=	等于则为真
!=	不相等则为真
-z 字符串	字符串的长度为零则为真
-n 字符串	字符串的长度不为零则为真

在这里插入图片描述
在这里插入图片描述

数值测试

-eq	等于则为真
-ne	不等于则为真
-gt	大于则为真
-ge	大于等于则为真
-lt	小于则为真
-le	小于等于则为真

在这里插入图片描述
在这里插入图片描述

中括号 [ ] 判断符

[ ] 里面只能输入 == 或者 != ,而且 [ ] 的前面与后面要与输入的内容空开

在这里插入图片描述
在这里插入图片描述

shell 脚本默认变量

$0 ~ $n :表示 shell 脚本的参数,$0 表示 shell 脚本命令本身;
$# :# 表示最后一个参数的标号;
$@ :表示 $1、$2、$3 … $n;

在这里插入图片描述
在这里插入图片描述

相关推荐

  1. Linux:shell脚本基础使用(9)《数组》

    2024-04-07 14:50:04       57 阅读
  2. shell 脚本基础练习

    2024-04-07 14:50:04       41 阅读
  3. Shell脚本基础知识

    2024-04-07 14:50:04       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-07 14:50:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-07 14:50:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-07 14:50:04       87 阅读
  4. Python语言-面向对象

    2024-04-07 14:50:04       96 阅读

热门阅读

  1. Impala Daemon无法启动问题记录(25000端口被占用)

    2024-04-07 14:50:04       34 阅读
  2. SPI123456

    2024-04-07 14:50:04       32 阅读
  3. ffmpeg 视频格式转换

    2024-04-07 14:50:04       39 阅读
  4. redis的Set详细介绍

    2024-04-07 14:50:04       37 阅读
  5. redis修改协议改了,有哪些替代品?

    2024-04-07 14:50:04       38 阅读
  6. 如何让你的回答有逻辑?-开放式问题应答技巧

    2024-04-07 14:50:04       39 阅读
  7. C++类和对象(上)

    2024-04-07 14:50:04       40 阅读
  8. Vscode已经安装imutils但是依旧报错

    2024-04-07 14:50:04       45 阅读
  9. 设计模式:生活中的观察者模式

    2024-04-07 14:50:04       46 阅读