首页 > 系统相关 >【Linux】shell 脚本基础使用

【Linux】shell 脚本基础使用

时间:2024-04-07 16:03:01浏览次数:23  
标签:脚本 文件 shell 文件名 cmd1 cmd2 Linux

在终端中输入命令可以完成一些常用的操作,但是我们都是一条一条输入命令,比较麻烦,为了解决这个问题,就会涉及到 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;

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

标签:脚本,文件,shell,文件名,cmd1,cmd2,Linux
From: https://blog.csdn.net/ZSW2027008838/article/details/137405088

相关文章

  • Linux系统下的压测工具
    作为一名运维人员,你是否遇到过这种场景?需要用工具测试系统cpu或内存占用高来触发告警,或者通过压测测试服务的并发能力。作为运维工程师,也可以通过这些命令复现故障场景。那么通过本文可以让你掌握常用的测试命令和工具。一、前言部分场景下,定位和复现项目问题需要使用工具进行系......
  • 【Linux】Makefile 基本语法
    make:一般说的是GNUMake,是一个软件,将源代码文件编译成可执行的二进制文件;Makefile:make工具编译的时候需要使用Makefile文件,Makefile文件描述了整个工程的编译、连接规则。接上一节:make工具和Makefile文件的引入Makefile举例注意Makefile的大小写!!!需要......
  • 远程连接与Linux基础使用指南
    1.远程连接与Linux基础使用指南1.远程连接排错详解1.0 Vmware小技巧挂起:把正在运行的虚拟机暂停,这样好处就是虚拟机不用关机。快照:给虚拟机当前状态拍摄一个保存节点,这个保存的节点可以用于恢复。可以在开机,挂起,关机状态拍摄。1.1现象关键提示:Connectionfaile......
  • Linux之隔离技术
    前言Linux的内核有两大特性Namespace和CGroup,这两种特性可以在Linux主机上实现主机名、用户、网络等全局资源的隔离,也是实现网络虚拟化、容器技术的基础。命名空间LinuxNamespace(命名空间)是一种操作系统层级的资源隔离技术,能够将Linux的全局资源,划分为namespace范围内......
  • python UTF-8解码及脚本头的标注
    在Python中,如果你需要将编码为UTF-8的字节串解码为Unicode字符串,你可以使用内置的str类型的decode方法,或者使用bytes.decode()方法。但通常情况下,如果你已经在Python3中处理字符串,你可以直接将字节串(类型bytes)转换为字符串(类型str)。例如:python#假设我们有以下UTF-8编码的......
  • ZYNQ学习之Petalinux 设计流程实战
    基本都是摘抄正点原子的文章:<领航者ZYNQ之嵌入式Linux开发指南V3.2.pdf,因初次学习,仅作学习摘录之用,有不懂之处后续会继续更新~PetaLinux工具提供了在Xilinx处理系统上自定义、构建和部署嵌入式Linux解决方案所需的一切。该解决方案旨在提高设计生产力,可与Xilinx硬......
  • Win11中安装虚拟化软件VMware,以及Linux虚拟机的详细安装配置
    文章目录前言安装VMwareWorkstationPro安装注意事项确认服务正常开启确认虚拟网络正常确认虚拟网卡使用VM新建Linux虚拟机新建虚拟机向导开启虚拟机后电脑蓝屏(可能)安装Linux虚拟机登录虚拟机前言记录时间[2024-4-7]本文讲述如何在Win11中安装虚拟化软......
  • linux 的一个socket 客户端程序
    linux的一个socket客户端程序 #ifndef__TCP_CLIENT_TEST_1__#define__TCP_CLIENT_TEST_1__#include<iostream>#include<cstring>#include<unistd.h>#include<arpa/inet.h>#include<sys/socket.h>intmain(){constchar*s......
  • Vim脚本语言入门:打造你的编辑器
    简介Vim脚本语言是Vim编辑器内置的一种脚本语言,它赋予用户高度的定制和自动化编辑任务的能力。通过编写Vim脚本,用户可以根据自己的需求来扩展和改进Vim编辑器的功能,从而提高编辑效率和舒适度。在Vim中,脚本语言被广泛用于创建自定义命令、自动化编辑任务、以及实现各种编辑......
  • Linux C指针以及指针在Linux内核中的应用
    在Linux环境下编写C语言程序时,指针是一个非常重要的概念,因为它们为处理内存地址、数组、字符串、函数、结构体等提供了极大的灵活性。在本篇博客中,我们将深入探讨C语言中的指针,理解它们的工作原理,并通过示例来展示它们的用途。什么是指针?指针是C语言的核心特性之一,它是一......