网站首页 > 博客文章 正文
摘要:Linux Shell 其实是用 C 语言编写出来的一个程序。Shell 不光是一种命令语言,而且还是一种程序设计语言。Shell 说的就是一种应用程序,这个应用程序能给出一个界面,用户依靠这个界面就能获取操作系统内核的服务。Shell 属于一个命令行解释器,它的作用在于解释并执行用户的命令,用户输入一条命令,Shell 就会马上解释执行这一条。当然啦,也能够把一套输入的逻辑整理成一个脚本文件,这样用起来就方便多了,能重复使用。
这篇文章重点讲的是 Linux Shell 编程里注释、变量、数组以及字符串的使用办法,详细的内容您可以参考下文。
一、Shell脚本结构
1.shell脚本程序
执行指令# vim hellojason.sh
#!/bin/bash
# 注释:说明脚本的作用
echo "Hello,Jason!"
备注:上述脚本中#!/bin/bash指明这个脚本使用bash解释器运行。而echo "Hello,Jason!"是一个简单的命令,用于输出文本。
2.运行shell脚本程序
说明:保存上述脚本内容后,给该脚本文件授予可执行的文件,然后执行指令# sh hellojason.sh运行该脚本文件。
二、Shell注释
说明:Shell编程中,为了方便脚本程序的理解,经常会使用文件进行注释。Shell脚本程序的注释分为单行注释和多行注释,一般使用#号进行单行注释,而多行注释倾向于使用:号。
1.单行注释符号#
说明:一般情况下,以 # 开头的行就是注释,会被解释器忽略。
如上述脚本程序中的内容:
就是单行注释。
2.多行注释符号:
说明:一般情况下,可以使用:<<EOF … … EOF进行多行注释。
:<<EOF
第一行注释
第二行注释
第三行注释
EOF
备注:上述注释符号:<<后面的EOF可以换成其它任意字符串。比如
:<<!
第一行注释
第二行注释
第三行注释
!
三、Shell变量
说明:在 Shell 编程中,变量是用来存储数据值的名称。一般格式如下
NAME1=jason # 可以不加引号定义字符串
NAME2='jason' # 单引号定义字符串
NAME3="jason" # 双引号定义字符串
1.定义变量
说明:分别使用字符串、加单引号的字符串和双引号的字符串定义变量,输出的结果一样。如下图
2.使用变量
说明:使用变量的时候需要加上$符号,或者${ }符号。花括号是可选的,主要为了帮助解释器识别变量边界。
比如上述可以这么使用已经定义的变量,如下
3.变量的变更及删除
说明:在把变量定义好了以后,能够用 readonly 命令去改变变量的属性,把变量变成只读变量。同时呢,如果已经定义好的变量用不着了,那就可以用命令 unset 把变量给删掉,变量一旦删掉就不能再用啦。当然,unset 命令是没办法删掉已经变成只读的变量的。
比如
四、Shell数组
说明:在 Shell 编程中,数组是用来存储多个数据值的名称。一般格式如下
1.定义数组
定义:在Shell编程中,数组就是一系列元素的集合,一个数组内可以存放多个元素。
2.读取数组
读取数组元素值的一般格式是:
${数组名[下标]}
比如
valuen=${array_name[n]}
如下
备注:可以使用${array_name[@]}或者${array_name[*]}获取数组的所有元素。
五、Shell字符串
说明:在 Shell 编程中,字符串是最常用最有用的数据类型,字符串可以用单引号,可以用双引号,也可以不用引号。
1.通过${字符串名}直接读取字符
2. 通过${#字符串名}获取字符串长度
3. 通过${字符串名:索引值:索引值}提取子字符串
备注:第一个字符的索引值为0
猜你喜欢
- 2025-02-04 无文件攻击:虚拟化安全如何做好针对性防护 (只做干货),关注交流
- 2025-02-04 shell编程(shell编程是干嘛的)
- 2025-02-04 关于PowershellMiner无文件挖矿病毒感染Windows系统的预警通报
- 2025-02-04 linux中内部变量,环境变量,用户变量的区别
- 2025-02-04 字节一面,操作系统这题没答好,可惜了
- 2025-02-04 有点意思的Shell特殊变量(shell 特殊变量)
- 2025-02-04 在Linux中,常见的shell有(linux中常用的shell命令有哪些)
- 2025-02-04 shell——函数介绍(shell function)
- 2025-02-04 C# Windows Api User32.dll窗体和消息动态库详解
- 2025-02-04 Shell脚本怎么写?(0)(shell脚本怎么写中文)
你 发表评论:
欢迎- 369℃用AI Agent治理微服务的复杂性问题|QCon
- 369℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 359℃初次使用IntelliJ IDEA新建Maven项目
- 352℃Maven技术方案最全手册(mavena)
- 349℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 348℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 346℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 344℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)