Shell 脚本学习笔记

Shell脚本学习笔记(从入门到精通),面向Python开发者的复习指南 Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助! 阅读详情

目录

1、创建Shell文件

2、运行Shell脚本

3、Shell变量

4、Shell 字符串

5、Shell数组

6、Shell注释

7、Shell传递参数

8、Shell基本运算符

9、Shell echo命令

10、Shell printf 输出命令

11、Shell test 命令

12、Shell 流程控制

13、Shell函数

14、Shell 文件包含


1、创建Shell文件

       编辑shell文件内容,保存后会自动创建对应的test.sh文件。

2、运行Shell脚本

     1)可执行程序运行

         修改脚本执行权限 chmod +x ./test.sh

         执行脚本  ./test.sh

    2) 作为解释器参数

       直接运行解释器,参数为shell脚本文件 sh test.sh

3、Shell变量

       1)变量命名

            命名只能使用英文字母,数字和下划线,首个字符不能以数字开头

            中间不能有空格,可以使用下划线(_)

            不能使用标点符号

            不能使用bash里的关键字(可用help命令查看保留关键字)

             变量大小写敏感

            定义变量user_name=”wangchao”等号前后不能有空格

       2)变量使用

           $变量名

          ${变量名}

           定义变量user_name=”wangchao”

           定义变量user_name =”wangchao”

           定义变量user_name= ”wangchao”

          使用变量 $user_name 或者 ${user_name}

       3)只读变量

           使用readonly命令可以将变量定义为只读变量。

url = “baidu.com”
readonly url
url=”www.baodu.com”
echo url

      4)变量类型

       shell 存在三种变量:

       局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量

      环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量

      shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

4、Shell 字符串

     字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。

    1)单引号

       单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的

       单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用

     2)双引号

         双引号里可以有变量

         双引号里可以出现转义字符

    3)反引号(` `)

         在反引号中的字符串将解释成shell命令来执行

    4)拼接字符串

        双引号拼接,单引号拼接

    5)获取字符串长度

        使用#获取变量字符串值的长度

user_name=”wangchao”
echo ${#user_name}

    6)提取子字符串

echo $user_name:1:4  # 错误用例
echo ${user_name:1:4}

     7)查找子字符串

          查找字符i或者o的第一个位置

string=runoob is great site
echo `expr index "$string"io`

5、Shell数组

bash支持一维数组(不支持多维数组),并且没有限定数组的大小

数组元素的下标由 0 开始。获取数组元素要利用下标,下标可以是整数或算术表达式。可以不使用连续的下标,而且下标的范围没有限制

1)数组定义

在 Shell 中,用括号来表示数组,数组元素用"空格"符号分割开

array_name=(value0 value1 value2 value3)

或者

array_name=(

value0

value1

value2

value3

)

2)数组读取

value=${array_name[n]}

使用@符号可以获取数组中的所有元素

echo ${array_name[@]}

3)获取数组长度

获取数组元素个数 len=${#array_name[@]} 或者 len=${#array_name[*]}

获取数组单个元素长度 len=${#array_name[n]}

6、Shell注释

单行注释使用 #

多行注释使用 :<<EOF  注释..... EOF 或者 :<<’ 

【任何电机可使用的七段式s曲线-----包括matlab代码和simulink仿真】 S形加加速(T1)→>匀加速(T2)→减加速(T3)→>匀速(T4 )>加减速(T5)>匀减速(T6)-→>减减速(T7) 阅读详情

相关推荐

实战Nocobase插件开发:如何用yarn pm命令快速创建和测试API接口插件

本文详细介绍了如何使用Nocobase插件开发工具快速创建和测试API接口插件,涵盖从环境配置、插件骨架生成到数据模型定义和接口实现的完整流程。通过yarn pm命令简化开发步骤,帮助开发者高效构建支持CRUD的API插件,适用于低代码平台开发场景。

weixin_29313239的博客 456

小样本学习概述

目录 前言 小样本学习存在的意义? 什么是小样本学习? 小样本学习的方法有哪些? 结语 前言 小样本学习(Few-Shot Learning)是近几年兴起的一个研究领域,小样本学习旨在解决在数据有限的机器学习任务。 小样本学习存在的意义? 近些年,以深度卷积神经网络为代表的深度学习方法在各类机器学习任务上取得了优异的成绩——很多任务上已经超越了人类表现。狂欢背后,危机四伏。因为这些深度学习方法work的关键之一是海量标注数据的支持。 但是在工业界,很多时候难以获得海量的训练数据,更.

DwD-的博客 3万+

如何运用好DeepSeek为自己服务:智能增强的范式革命 || 目录

1.1 认知增强的三次浪潮1.2 DeepSeek认知增强模型1.3 人机认知耦合协议1.4 认知增强的数学基础。

𝓓𝓸𝓶𝓲𝓷𝓪𝓽𝓲𝓷𝓰 𝓐𝓵𝓵 𝓣𝓱𝓲𝓷𝓰𝓼 1220

MATLAB实战:蓝牙GFSK调制解调全流程解析(附误码率优化技巧)

本文深入解析了蓝牙GFSK调制解调在MATLAB中的全流程实现,包括高斯滤波器设计、调制解调技术及误码率优化技巧。通过实战案例和代码示例,帮助工程师提升蓝牙通信系统的性能表现,特别是在降低误码率方面的有效方法。

weixin_29046035的博客 277

GEOSHIELD:分布式CPS的拜占庭容错与安全防护技术

分布式系统在关键基础设施(如轨道交通、智能电网)中面临网络延迟和恶意节点的双重挑战。拜占庭容错(BFT)技术通过算法保证系统在存在故障节点时仍能达成一致,是保障系统安全的核心机制。GEOSHIELD创新性地结合概率化网络延迟测量和TGS动态信任评分,实现了不依赖可信硬件的拜占庭 resilience。该技术通过建立节点行为的信用档案,动态识别恶意行为,在保证安全性的同时最大化系统可用性。实验证明,即使在自适应攻击策略下,GEOSHIELD仍能保持系统95.6%的正常运行时间,为CPS系统提供了可靠的安全防护

weixin_31766003的博客 346

瑞萨 RL78 开发环境实战:从 CS+ for CC 到 e² studio 高效开发

本文详细介绍了瑞萨RL78单片机开发环境的选择与配置,对比分析了CS+ for CC和e² studio的特点及适用场景。内容涵盖环境安装、工程创建、调试技巧、外设驱动开发和低功耗设计等实战经验,为开发者提供全面的RL78入门指南,帮助快速上手并高效开发。

4k5l6j7h8的博客 242

Android WIFI体系:深入解析WifiLock与MulticastLock的底层实现与性能优化

本文深入解析Android WIFI体系中WifiLock与MulticastLock的底层实现机制与性能优化策略。WifiLock通过阻止Wi-Fi休眠提升网络性能,尤其WIFI_MODE_FULL_HIGH_PERF模式可显著降低延迟;MulticastLock则控制组播数据接收,但会增加功耗。文章详细探讨了其与wpa_supplicant、HAL层的交互,并提供高性能场景下的优化实践与功耗平衡方案。

php55的博客 1079

大语言模型应用指南:幻觉和偏见问题

大语言模型应用指南:幻觉和偏见问题 1. 背景介绍 1.1 大语言模型的发展历程 1.1.1 早期的语言模型 1.1.2 Tr

AI天才研究院 958

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: SpringBoot Redis 实现消息发布与订阅
下一篇: Yaml 配置文件解析Map-SnakeYAML
仰望星空@脚踏实地
博客等级 码龄19年 68粉丝 127原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仰望星空@脚踏实地

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值