【Linux】shell 脚本基础使用

在终端中输入命令可以完成一些常用的操作,但是我们都是一条一条输入命令,比较麻烦,为了解决这个问题,就会涉及到 shell 脚本,它可以将很多条命令放到一个文件里面,然后直接运行这个文件即可。

shell 脚本类似 Windows 的批处理文件 shell 脚本就是将连续执行的命令写成一个文件。

shell 脚本提供数组、循环条件判断的等功能。

创建一个 shell 脚本

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

c 复制代码
vi my.sh
c 复制代码
#!/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

文件测试

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


字符测试

c 复制代码
=	等于则为真
!=	不相等则为真
-z 字符串	字符串的长度为零则为真
-n 字符串	字符串的长度不为零则为真


数值测试

c 复制代码
-eq	等于则为真
-ne	不等于则为真
-gt	大于则为真
-ge	大于等于则为真
-lt	小于则为真
-le	小于等于则为真


中括号 判断符

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


shell 脚本默认变量

0 \~ n :表示 shell 脚本的参数,$0 表示 shell 脚本命令本身;

$# :# 表示最后一个参数的标号;

@ :表示 1、2、3 ... $n;


相关推荐
FoldWinCard3 小时前
D5 Linux 网络及端口命令
linux·运维·服务器
零涂毕业设计4 小时前
毕业设计模块开发-OLED显示屏(IIC协议0.96寸)STM32 ESP32 FPGA Linux驱动免费分享
linux·stm32·单片机·嵌入式·esp32·fpga·oled
tedcloud1234 小时前
OmniRoute怎么部署?开源AI模型路由平台Linux部署教程
linux·服务器·人工智能·开源·音视频
霸道流氓气质5 小时前
KMS 密钥管理服务(Key Management Service)原理与实践
linux·服务器·数据库
SakitamaX5 小时前
LVS(Linux Virtual Server)概念详解
linux·运维·lvs
小张同学a.5 小时前
Linux系统管理
linux·运维
阿龙的工作记录5 小时前
深入理解Linux设备驱动模型
linux·嵌入式硬件·工作记录
代码村新手6 小时前
Linux的基本指令
linux·运维·服务器
撩得Android一次心动8 小时前
Linux编程笔记3【个人用】
linux·笔记
OpenPomeloxCommunity8 小时前
3. Linux 同步机制之 spinlock 设计与实现(一):通用层
linux