Linux基础之shell脚本

发布时间:2026/8/6 17:42:00

Linux基础之shell脚本
一、了解什么是shell脚本shell脚本的本质就是 shell命令的有序集合 它属于一种解释型语言不需要编译方便操作者对重复性的劳动进行编程同时shell脚本也是一种无类型语言其变量没有类型或字符串类型注意事项: 对标点符号 和 格式 非常严格 特别是空格二、创建一个shell脚本的步骤1. 创建一个普通文件通常后缀.shtouch hello.sh2. 修改权限 添加可执行权限chmod 777 hello.sh3. 写脚本vim hello.sh注任何一个脚本文件的第一行都必须写 #!/bin/bash4. 运行脚本 ./hello.sheg写一个创建脚本的 创建1.sh#!/bin/bash #创建名为1.sh的脚本文件 touch 1.sh #修改权限 chmod 777 1.sh #在终端打印hello world echo hello world三、shell脚本中的变量变量: 多用于代指文件名即各种名字或参数命令等1、用户自定义变量:变量定义 变量名值 等号两边 没有空格变量使用 引用其值 $变量名 本质是字符替换2、位置变量:$0 运行脚本的指令本身$1,$2,……$9 分别包含第一个到第九个命令行参数3、预定义变量: 有终端预先定义的一些变量由系统保留和维护的一组特殊的变量这些变量通常用于保存程序运行状态等$# 包含命令行参数的个数$ 包含所有命令行参数“$1,$2,……$9”$? 包含前一个命令的退出状态$* 包含所有命令行参数“$1,$2,……$9”$$ 包含正在执行进程的ID号4、环境变量: 一组存储终端环境参数的变量注export 命令可以打印输出 终端所有的环境变量PWD 存储当前工作路径USER 存储当前终端的登录用户HOME 存储当前用户的家目录PATH 存储当前终端 的命令搜索路径eg编写一个脚本文件来创建一个新的脚本#!/bin/bash #定义一个变量 #NAMEif.sh #定义位置变量 NAME$1 echo 正在创建$NAME文件 touch $NAME echo 正在配置文件 chmod 777 $NAME echo 正在写入第一行 echo #!/bin/bash $NAME echo $NAME文件创建成功结果展示四、shell脚本的 输入输出输入echo 输出字符串输出read 从终端读取字符串五、shell中 的算数运算expr 数学表达式注1、 每个符号与数值 间都要有空格分开2、shell脚本支持 - \* / % 但只能做整数运算不能做小数运算六、shell 表达式1、字符串测试s1 s2 测试两个字符串的内容是否完全一样s1 ! s2 测试两个字符串的内容是否有差异-z s1 测试s1 字符串的长度是否为0-n s1 测试s1 字符串的长度是否不为02、整数测试a -eq b 测试a 与b 是否相等a -ne b 测试a 与b 是否不相等a -gt b 测试a 是否大于ba -ge b 测试a 是否大于等于ba -lt b 测试a 是否小于ba -le b 测试a 是否小于等于b-d name 测试name 是否为一个目录-e name 测试一个文件是否存在-f name 测试name 是否为普通文件-L name 测试name 是否为符号链接-r name 测试name 文件是否存在且为可读-w name 测试name 文件是否存在且为可写-x name 测试name 文件是否存在且为可执行-s name 测试name 文件是否存在且其长度不为0f1 -nt f2 测试文件f1 是否比文件f2 更新f1 -ot f2 测试文件f1 是否比文件f2 更旧七、shell中的程序结构1、 if 结构if [ 表达式 ]then命令块1else命令块2fi注如果没有else 可以省略 则if结构可写为if [ 表达式 ]then命令块1fieg输入一个文件名判断该文件是否存在, 若存在则判断是否为普通文件且是空的若是则删除它#!/bin/bash #echo 请输入一个文件名 #read FILE FILE$1 if [ -z $FILE ] then echo UseAge:该脚本用于删除一个空的普通文件 echo 需要指定一个文件名参数 else echo 正在操作$FILE if [ -e $FILE ] then echo 文件存在 if [ -f $FILE ] then echo 是普通文件 if [ -s $FILE ] then echo 文件有内容 else echo 文件没有内容, 删除$FILE rm $FILE fi fi fi fi结果展示2、case 多分支结构case $变量名 in值1) 命令块1;;值2) 命令块2;;...*) 命令块nesac运行逻辑 将变量中字符串与括号左边的字符串比较相等就执行后面的命令块若不相等 继续向后比较注值可以使用通配符eg输入成绩判断输入的成绩的优良中差并输出#!/bin/bash echo 请输入你的成绩: read cj case $cj in 100) echo 满分优秀 ;; 9?) echo 成绩优秀 ;; 8?) echo 成绩良好 ;; [67]?) echo 成绩及格 ;; *) echo 成绩不及格 esac结果展示3、for循环结构1:for (( I0;I10;I ))do循环命令块doneeg: 创建10个文件 文件名为 file_数.txt#!/bin/bash for ((I0;I10;I)) do touch file_$I.txt done结果展示结构2:for 变量名 in 取值列表do循环命令块done注取值列表中是以空格、回车等分隔开的字符串每次循环变量的值就是取值列表中的一个 并且是顺序的eg: 打印输出当前目录中 所有.sh 文件都打印出来#!/bin/bash #file$1 for file in ls *.sh do echo $file done结果展示eg: 写一个脚本实现将当前目录中所有的、空的、普通文件删除#!/bin/bash for file in ls * do echo $file if [ -e $file ] then echo 文件存在 if [ -f $file ] then echo 普通文件 if [ -s $file ] then echo 有内容 else echo 没有内容删除$file rm $file fi fi fi done4、while循环while [ 条件表达式 ]do循环语句块done注shell中的while与C中的运行逻辑完全一样八、循环控制语句breakcontinue注shell中的循环控制语句与C中的break和continue关键字的效果完全一样九、了解shell 的函数1、 函数定义:函数名(){命令块}2、函数调用 函数名3、参数传递 使用位置变量eg在终端打印hello world并计算12的值#!/bin/bash func() { echo hello world return 0 } sum() { aexpr $1 $2 echo a$a return 0 } #调用函数func func #使用命令置换方式调用sum函数 #Asum 1 2 sum 1 2 #echo A$A结果展示

相关新闻

【DevExpress中文教程】在GridView中动态创建列时如何绑定不同编辑处理控件

【DevExpress中文教程】在GridView中动态创建列时如何绑定不同编辑处理控件

2026/8/6 17:42:00

在使用DevExpress GridView时,为了方便往往使用一些扩展函数,动态创建GridView列的编辑控件对象,然后我们可以灵活的对内容进行编辑或者使用一些弹出的对话框窗体进行处理内容的录入,本文就是介绍这一主题:在DevExpres…

Kendo UI for jQuery,一个现代的jQuery UI组件!

Kendo UI for jQuery,一个现代的jQuery UI组件!

2026/8/6 17:42:00

Kendo UI for jQuery是什么?Kendo UI for jQuery是完整的jQuery UI组件库,可快速构建出色的高性能响应式Web应用程序。Kendo UI for jQuery提供在短时间内构建现代Web应用程序所需要的工具,从多个UI组件中选择,并轻松地将它们组合…

佳能g1800 g1810 g2800 g2810 g3800 g3810 g4800 g4810清零软件5b00,5b02,5b04,1700,1702,1704,p07,e08亲测完美维修。

佳能g1800 g1810 g2800 g2810 g3800 g3810 g4800 g4810清零软件5b00,5b02,5b04,1700,1702,1704,p07,e08亲测完美维修。

2026/8/6 17:42:00

极速下载:点这里下载 密码:00 百度云:点这里下载 备用:pan.baidu.com/s/1gls2G4rqWWP-Mw-z6tVjnQ?pwd0000 常见型号如下: G1000、G1100、G1200、G1400、G1500、G1800、G1900、G1010、G1110、G1120、G1410、G1420、G1411、G1…

PCB之四层板

PCB之四层板

2026/8/6 18:32:02

四层 PCB 叠层设计笔记叠层(从上到下)Top  表层信号层GND  内层完整地平面SIG  内层信号走线层Bottom 底层信号层叠层特点:第二层专用完整 GND 平面;第三层为信号优先的内层,不是专用电源平面。适合信号多、电源…

锚定AI数字韧性赛道,同创永益完成新一轮股权融资

锚定AI数字韧性赛道,同创永益完成新一轮股权融资

2026/8/6 18:32:02

——国资引导基金、产业投资平台共同投资 龙头企业蓄力规模化高质量发展 近日,国内数字韧性领军企业北京同创永益科技发展有限公司(以下简称“同创永益”)宣布完成近亿元股权融资。本轮融资由深圳市龙岗区引导基金投资有限公司、中关村智慧能…

技术探讨:基于唐山创通科技的RFID智能文件柜如何实现档案的精细化管理?

技术探讨:基于唐山创通科技的RFID智能文件柜如何实现档案的精细化管理?

2026/8/6 18:32:02

在传统的档案与文件管理中,人工盘点耗时费力、错放漏放难以追溯、涉密文件权限管控难等问题一直困扰着管理人员。随着物联网技术的发展,RFID(射频识别)技术为实体档案的数字化管理提供了新的解决思路。本文将探讨唐山创通科技RFID…

3分钟掌握Python盲水印技术:保护你的数字图像版权

3分钟掌握Python盲水印技术:保护你的数字图像版权

2026/8/6 18:32:02

3分钟掌握Python盲水印技术:保护你的数字图像版权 【免费下载链接】BlindWaterMark 盲水印 by python 项目地址: https://gitcode.com/gh_mirrors/bli/BlindWaterMark 在数字时代,图像版权保护成为了创作者面临的重要挑战。你是否曾担心自己的作品…

运营不用求技术,AI 帮你写代码

运营不用求技术,AI 帮你写代码

2026/8/6 18:32:02

做运营的最憋屈时刻是什么? 不是数据不好看。不是转化率低。是你有一个能提效 10 倍的想法,但要等技术排期。「帮我爬一下竞品的小红书数据」「帮我做一个周报自动生成的脚本」「帮我把这 50 个 Excel 合并一下」——每次提这种需求,你都能感…

年货App开发带来的帮助和相关解决方案

年货App开发带来的帮助和相关解决方案

2026/8/6 18:22:01

每逢新年佳节每个人心中都充满喜悦,除了带上自己的祝福相应的年货也需要准备,而准备年货是一件复杂的事情,因为数量繁多需要涉及到的方面也是非常丰富的,人们需要细化到每一件商品上,这不仅需要耗费时间更需要花费精力…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/4 15:23:37

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/5 6:02:27

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/5 8:19:55

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

Unity相机抖动插件Camera-Shake集成与应用实战指南

Unity相机抖动插件Camera-Shake集成与应用实战指南

2026/8/6 0:00:51

1. 项目概述与核心价值最近在做一个动作游戏,需要给主角的重击和爆炸场景加点料,让打击感更足。我第一时间就想到了给相机加个抖动效果,毕竟这是提升玩家沉浸感最简单直接的手段之一。自己手写一个也不是不行,但时间成本高&#x…

Cocos Creator 3.7微信小游戏开发:从架构设计到提审上线的全流程实战指南

Cocos Creator 3.7微信小游戏开发:从架构设计到提审上线的全流程实战指南

2026/8/6 0:00:51

1. 项目概述:为什么需要一份3.7版本的专属适配指南?如果你是一位使用Cocos Creator开发微信小游戏的开发者,并且项目正运行在3.7版本上,那么你很可能已经感受到了那份“甜蜜的烦恼”。一方面,Cocos Creator 3.7是一个功…

AI编程实战:从Prompt工程到工具链集成,打造高效开发工作流

AI编程实战:从Prompt工程到工具链集成,打造高效开发工作流

2026/8/6 0:00:51

1. 项目概述:一次开源AI编程课程的深度重构 最近,我把自己的开源AI编程课程《Claude Code》做了一次从里到外的大更新。如果你对利用Claude、Codex这类大模型来辅助编程感兴趣,或者正在寻找一个能跟上最新AI编码工具迭代节奏的学习路径&#…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/6 5:43:30

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/4 14:25:14

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/4 15:11:03

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…