Linux の shell 基本语法

变量

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.mzph.cn/news/7698.shtml

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

相关文章

Flask 创建文件目录,删除文件目录

项目结构 app.py from flask import Flask, render_template, request, redirect, url_for import osapp Flask(__name__) BASE_DIR os.path.abspath(os.path.dirname(__file__)) FILE_DIR os.path.join(BASE_DIR, testfile)app.route(/, methods[GET, POST]) def index():…

jenkins

Gitlab添加钩子 测试钩子 添加完成后&#xff0c;下面会出现钩子选择。点击test中的&#xff0c;push event。 出现successful&#xff0c;既添加成功。 如果添加失败&#xff0c;报错&#xff0c;更改Network

JMerter安装配置以及使用(笔记记录)

JMerter安装配置以及使用&#xff08;笔记记录&#xff09; 安装JDK安装JMeterJMeter使用元件执行的顺序参数详解参数配置之CSV数据文件设置断言响应断言JSON断言 数据提取XPath提取器JSON提取器 JMeter属性JMeter录制脚本JMeter直连数据库逻辑控制器如果&#xff08;IF&#x…

数据库概述和DDL语句(学会并使用数据库day1)

数据库概述和DDL语句&#xff08;day1&#xff09; 一、数据库概述概念数据库的集中式控制有什么优点数据库分类mysql数据库mysql简介基本术语数据表的组成 数据库管理系统数据库管理系统、数据库和表的关系 二、SQL的概念三、SQL语句分类1、SQL语句被分为四大类2、MySQL的语法…

Databend 开源周报第 103 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 创建网络策略 …

Blender自动化脚本,无人值守批量渲图/渲视频

渲染视频是个非常耗时的大工程&#xff0c;如果要渲染多个视频或者每个视频还需要切换不同的贴图、颜色等&#xff0c;工作量就更离谱了&#xff0c;所以不得不用脚本实现自动化。 Blender的脚本是用Python编写&#xff0c;比PS的js要方便很多。再下载一套Blender对应版本的AP…

24.实现线性拟合和相关系数(matlab程序)

1.简述 1. 基本语法 1.1 corr函数基本语法 语法 说明 rho corr(X) 返回输入矩阵X中每对列之间的两两线性相关系数矩阵。 rho corr(X, Y) 返回输入矩阵X和Y中每对列之间的两两相关系数矩阵。 [rho, pval] corr(X, Y) 返回pval&#xff0c;一个p值矩阵&#xff0c…

redis安装

安装redis 安装依赖环境 yum install -y gcc cd /opt tar -xf redis-5.0.7.tar cd redis-5.0.7/ make && make install PREFIX/usr/local/redis installvim /opt/redis-5.0.7/utils/install_server.shcd /opt/redis-5.0.7/utils ./install_server.sh Please select the…

极简并优雅的在IDEA使用Git远程拉取项目和本地推送项目

连接Git 搜索Git然后将你下载好的Git的文件目录位置给他弄进去就行 本地分支管理 分支管理通常是在IDEA的右下角找到 连接远程仓库 方法1本地项目推送到远程仓库 如果当前项目还没交给Git管理的则按照以下图所示先将项目交给Git管理 然后此时文件都会是红色的&#xff0c;这表…

C# 存在重复元素

217 存在重复元素 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 &#xff0c;返回 true &#xff1b;如果数组中每个元素互不相同&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3,1] 输出&#xff1a;true 示例 2&#xff1a; 输…

从小白到大神之路之学习运维第67天-------Tomcat应用服务 WEB服务

第三阶段基础 时 间&#xff1a;2023年7月25日 参加人&#xff1a;全班人员 内 容&#xff1a; Tomcat应用服务 WEB服务 目录 一、中间件产品介绍 二、Tomcat软件简介 三、Tomcat应用场景 四、安装配置Tomcat 五、配置目录及文件说明 &#xff08;一&#xff09;to…

zabbix钉钉报警

登录钉钉客户端,创建一个群,把需要收到报警信息的人员都拉到这个群内. 然后点击群右上角 的"群机器人"->"添加机器人"->"自定义", 记录该机器人的webhook值。 添加机器人 在钉钉群中&#xff0c;找到只能群助手 添加机器人 选择自定义机…

IDEA+SpringBoot +ssm+ Mybatis+easyui+Mysql求职招聘管理系统网站

IDEASpringBoot ssm MybatiseasyuiMysql求职招聘管理系统网站 一、系统介绍1.环境配置 二、系统展示1. 登录2.注册3.首页4.公司5.关于我们6.我的简历7.我投递的简历8.修改密码9. 管理员登录10.我的信息11.用户信息12.职位类别13. 职位列表14. 公司列表15. 日志列表 三、部分代码…

Visual Studio 2022 cmake配置opencv开发环境

1. 环境与说明 这里我用的是 widnows 10 64位&#xff0c;Visual Studio 用的 Visual Studio Community 2022 (社区版) 对于Android开发工程师来说&#xff0c;为什么要使用Visual Studio 呢 ? 因为在Visual Studio中开发调试OpenCV方便&#xff0c;可以开发调试好后&#xf…

Transformer+医学图像最新进展【2023】

Transformer主要用于自然语言处理领域。近年来,它在计算机视觉(CV)领域得到了广泛的应用。医学图像分析(MIA,Medical image analysis)作为机器视觉(CV,Computer Vision)的一个重要分支,也极大地受益于这一最先进的技术。 机构:新加坡国立大学机械工程系、中山大学智能系…

安装nvm管理node

1.首先卸载已存在的node cmd输入node提示&#xff1a;‘node’ 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 2.安装nvm 安装地址 &#xff1a;Releases coreybutler/nvm-windows GitHub 本人选择1.1.7 输入nvm打印出了nvm的指令列表&#xff0c;说明…

IDEA+SpringBoot + Mybatis + Shiro+Bootstrap+Mysql资产设备管理系统

IDEASpringBoot Mybatis ShiroBootstrapMysql资产设备管理系统 一、系统介绍1.环境配置 二、系统展示1. 管理员登录2.用户新增3.用户设置4.岗位管理5. 审批节点6. 人员查询7. 组织设置8. 人员调整9.角色设置10.角色模块映射11.模块设置12.应用模块13.光纤交换机14.服务器15.网…

C++之文件操作

1.C文件操作 C中文件操作头文件:fstream。   文件类型&#xff1a;文件文件和二进制文件。 文件操作三大类&#xff1a;     ofstream 写操作     ifstream 读操作     fstream:读写操作 文件打开方式&#xff1a; 标志说明ios::in只读ios::out只写,文件不存在则…

大数据面试题:HBase读写数据流程

面试题来源&#xff1a; 《大数据面试题 V4.0》 大数据面试题V3.0&#xff0c;523道题&#xff0c;679页&#xff0c;46w字 参考答案&#xff1a; 1、写数据流程 1&#xff09;Client先访问zookeeper&#xff0c;获取hbase:meta表位于哪个Region Server。 2&#xff09;访…

使用TensorFlow训练深度学习模型实战(上)

大家好&#xff0c;尽管大多数关于神经网络的文章都强调数学&#xff0c;而TensorFlow文档则强调使用现成数据集进行快速实现&#xff0c;但将这些资源应用于真实世界数据集是很有挑战性的&#xff0c;很难将数学概念和现成数据集与我的具体用例联系起来。本文旨在提供一个实用…