Linux の shell 基本语法

news2024/12/28 2:51:00

变量

shell中变量比较特殊,变量名和等号之间不能有空格。其它的跟常见的变成语言类似
命名规则:
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
中间不能有空格,可以使用下划线 _。
不能使用标点符号。
不能使用bash里的关键字
变量的使用
其它语言,一般就直接使用了,但shell需要加 $ 修饰一下,不然就不是输出变量值了,而是当作字符串,原样输出拉

my_name=‘shell1’
my_name=shell2
my_name=“shell3”
** 变量值,加’’ 、“” 、 不加 都可以的**
echo $my_name
echo ${my_name} # 推荐这种 变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界
只读变量, readonly
在这里插入图片描述
清除删除变量
unset 变量
在这里插入图片描述

字符串

字符串是shell编程中最常用最有用的数据类型,字符串可以用单引号,也可以用双引号,也可以不用引号

单引号字符串的限制:
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
双引号
双引号的优点:

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

在这里插入图片描述
获取字符串长度
变量为字符串时,${#string} 等价于 ${#string[0]}:
在这里插入图片描述
字符串截取
在这里插入图片描述
查找子字符串
在这里插入图片描述

数组

shell 只有一维数组
数组的定义
my_array=(val1 val2 val3) # 的值与值 之间 是空格
数组的取值
${my_array[index]}
${my_array[@]} 等价于 ${my_array[*]} 获取数组中所有元素

${#my_array[@]} 等价于 ${#my_array[*]} 获取数组的长度

${#my_array[index]} 获取数组第几个元素的长度
在这里插入图片描述
在这里插入图片描述

关联数组

关联数组使用字符串作为下标,而不是整数。关联数组也称“键值对(key-value)”数组,key为下标,value为元素值。

声明关联数组
declare -A 数组名

关联数组的赋值
1、一次赋一个值
数组名[索引名]=值
2、一次赋多个值
数组名=([索引1]=val1 [索引2]=val2 )
3、声明同时初始化
declare -A site=([“google”]=“www.google.com” [“runoob”]=“www.runoob.com” [“taobao”]=“www.taobao.com”)

关联数组访问

#访问“key”对应的value值
echo ${数组名[key]}
#获取关联数组的所有元素值
echo ${数组名[@]}
echo ${数组名[* ]}
#获取关联数组的所有下标值,key
echo ${!数组名[@]}
echo ${!数组名[*]}
在这里插入图片描述
在这里插入图片描述

注释

单行注释

多行注释
:<< EOF
注释内容…
注释内容…
注释内容…
EOF

在这里插入图片描述

:<<!
注释1
注释2
!

:<<'
注释1
注释2
'

传递参数

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

运算符

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

关系运算符

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

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

test

在这里插入图片描述

数值测试
在这里插入图片描述

字符串测试
在这里插入图片描述

文件测试
在这里插入图片描述

循环

#!/bin/bash
for f in ` ls /etc`
do
echo $f
done

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/783051.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

了解一下启动类如何运行

Run 我最初以为就是运行了一个main方法&#xff0c;没想到去开启了一个服务。 package com.qf;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; //SpringBootApplication&#xff1a;标注这个类是…

Maven的热部署devtools

最近在搞springbootmaven项目&#xff0c;每次重启很烦人&#xff0c;才想起以前的热部署devtool依赖没添加。 在搭建springboot项目中往controller类加入注解RestController RequestMapping后&#xff0c;我们就可以通过http请求访问结果&#xff0c;可当我修改代码或增加文件…

ElasticSearch学习--搜索

目录 DSL查询文档 DSL查询分类 match_all 总结 全文检索查询 match multi_match​编辑 总结 精准查询 ids range&#xff0c;term 地理坐标查询 geo_bounding_box geo_distance 组合(复合)查询 总结 Function Score Query 复合查询Boolean Query 案例 搜索结果处…

菜鸡shader:L12 SD处理贴图制作时钟动画

文章目录 SD处理贴图Shader代码C#代码最后效果 SD处理贴图 呃呃感觉这节课&#xff0c;很大一部分都是在将怎么用SD来处理贴图&#xff0c;在这里就简单放一下课上的截图吧&#xff0c;我也跟着做了一下&#xff0c;虽然表盘十二个数排列间隔不一样&#xff0c;但还是稀碎地做…

【ARM Cache 系列文章 2 -- Cache Coherence及内存顺序模学习】

文章目录 Cache Coherence 背景1.1 内存顺序模型简介(Memory Model)1.1.1 Normal Memory1.1.2 Device Memory 1.2 Cache 一致性问题解决方案1.2.1 Shareability 属性1.2.2 Non-Shareable 属性1.2.3 Inner-Shareable 属性1.2.4 Out-Shareable 属性 1.3 Shareability 和 PoC/PoU …

【MATLAB第59期】基于MATLAB的混沌退火粒子群CSAPSO-BP、SAPSO-BP、PSO-BP优化BP神经网络非线性函数拟合预测/回归预测对比

【MATLAB第59期】基于MATLAB的混沌退火粒子群CSAPSO-BP、SAPSO-BP、PSO-BP优化BP神经网络非线性函数拟合预测/回归预测对比 注意事项 不同版本matlab 不同电脑 加上数据集随机&#xff0c;BP权值阈值随机&#xff0c;进化算法种群随机&#xff0c;所以运行结果不一定和我运行…

20.matlab数据分析极限(matlab程序)

1.简述 计算极限 MATLAB提供计算极限的limit函数。在其最基本的形式中&#xff0c;limit函数将表达式作为参数&#xff0c;并在独立变量为零时找到表达式的极限。 例如&#xff0c;要计算函数f(x)(x^3 5)/(x^4 7)的极限&#xff0c;因为x趋向于零。 syms xlimit((x^3 5)/…

设计模式 ~ 职责链、策略、适配器、MVC、MVVM

职责链模式 一种行为型设计模式&#xff0c;它允许多个对象按照特定的顺序处理请求&#xff0c;直到其中一个对象能够处理该请求为止&#xff1b; 一个流程&#xff0c;需要多个角色处理&#xff0c;通过 一个“链”串联起来&#xff0c;各个角色相互分离&#xff0c;互不干扰…

使用 Cpolar 内网穿透实现 Windows 远程 WebDAV 访问

文章目录 windows搭建WebDAV服务&#xff0c;并内网穿透公网访问【无公网IP】1. 安装IIS必要WebDav组件2. 客户端测试3. 使用cpolar内网穿透&#xff0c;将WebDav服务暴露在公网3.1 打开Web-UI管理界面3.2 创建隧道3.3 查看在线隧道列表3.4 浏览器访问测试 4. 安装Raidrive客户…

机器学习术语解析与应用(一)

文章目录 &#x1f340;引言&#x1f340;数据集&#x1f340;特征工程&#xff08;Feature Engineering&#xff09;&#x1f340;模型&#xff08;Model&#xff09;&#x1f340;算法&#xff08;Algorithm&#xff09;&#x1f340;训练&#xff08;Training&#xff09;&a…

【广州华锐互动】VR汽车故障维修模拟系统

随着汽车行业的发展&#xff0c;汽车机械检修技术也变得越来越重要。传统的教学方式已经不能满足现代汽车维修的需求&#xff0c;因此VR汽车故障维修模拟系统应运而生。这个平台具有许多实用的功能&#xff0c;可以帮助学生更好地学习和掌握汽车机械检修技能。 VR汽车故障维修模…

【Linux】无法获得dpkg前端锁的解决方法

问题如下&#xff1a; 解决方法如下&#xff1a; sudo rm /var/lib/dpkg/lock sudo rm /var/lib/dpkg/lock-frontend sudo rm /var/cache/apt/archives/lock经过证明&#xff0c;输入以上三个命令即可解除占用。 解除后&#xff0c;继续运行apt命令&#xff0c;已经顺利运行了…

2023-07-19-Ubuntu火狐浏览器不能播放视频

layout: post # 使用的布局 title: Ubuntu火狐浏览器不能播放视频 # 标题 subtitle: linux系统 #副标题 date: 2023-07-19 # 时间 author: BY ThreeStones1029 # 作者 header-img: img/no_found_html5.jpg #这篇文章标题背景图片 catalog: true # 是否归档 tags: Ubuntu #标签 …

vue实现excel数据下载,后端提供的list由前端转excel并下载

前言,因为项目需求需要,我们需要把后端传来的list转成excel模板,并且下载下来) 之前有用的插件,但是会有少0的情况,如下 所以采用另一个项目用过的方法,最终完美实现效果,如下: 1,首先我们来看下后端提供的数据结构 2,具体前端代码如下 封装的组件,需要的同学直接copy就行(这…

【Linux】VMware 安装 Centos7 超详细

1、下载✈ VMware链接&#xff1a;https://pan.baidu.com/s/1DnleWeV-JHjZiV9_ENwFmg?pwdb1tj 提取码&#xff1a;b1tj 阿里云镜像&#xff1a;centos安装包下载_开源镜像站-阿里云 CentOS官网镜像&#xff1a; Download 2、虚拟机准备 2.1、打开VMware选择新建虚拟机…

vector 容器相关的练习

目录 一、只出现一次的数字 二、只出现一次的数字 II 三、只出现一次的数字 III 四、删除有序数组中的重复项 五、杨辉三角 六、数组中出现次数超过一半的数字 七、电话号码的字母组合 一、只出现一次的数字 class Solution { public:int singleNumber(vector<int&g…

springboot()—— springboot整合mybatis

总结&#xff1a; 和SSM相比&#xff0c; 1&#xff09;导入的包不同 2&#xff09;不再有mybatis的核心配置文件了&#xff0c;也不同单独写db.properties了&#xff0c;以前“开启二级缓存&#xff0c;起别名”等在核心配置文件里的配置全都配置到application.properties里…

前端实现文件上传的方式

这个文章总结了四种前端上传文章的方式 <inputtype"file"multipleonChange{(e) > {const c [].slice.call(e.target.files);console.log(e.target.files, e.target.files);console.log(e.target.files.arrary, c);const v new FormData();v.append(file, c[…

K8S初级入门系列之九-共享存储

一、前言 Pod里面的容器都有自己独立的文件系统&#xff0c;来自容器镜像&#xff0c;用于保存容器运行的数据&#xff0c;但容器的文件存储有两个弊端&#xff0c;一个是无法持久化&#xff0c;其生命周期与容器一致&#xff0c;一旦容器销毁&#xff0c;相关的数据也就随之一…

0134 数据的表示和运算3

目录 2.数据的表示和运算 2.3浮点数的表示与运算 2.3部分习题 2.数据的表示和运算 2.3浮点数的表示与运算 2.3部分习题 1.下列关于对阶操作&#xff0c;正确的是&#xff08;&#xff09; A.在浮点加减运算的对阶操作中&#xff0c;若阶码减小&#xff0c;则尾数左移 …