linux Shell 命令行-02-var 变量
拓展阅读
linux Shell 命令行-00-intro 入门介绍
linux Shell 命令行-02-var 变量
linux Shell 命令行-03-array 数组
linux Shell 命令行-04-operator 操作符
linux Shell 命令行-05-test 验证是否符合条件
linux Shell 命令行-06-flow control 流程控制
linux Shell 命令行-07-func 函数
linux Shell 命令行-08-file include 文件包含
linux Shell 命令行-09-redirect 重定向
定义
- 变量名和
=之间不能有空格 - 必须以 [a-zA-Z] 开头,变量名可以包含
_ - 不能包含标点符号和关键字
my_name="houbinbin"
重新定义
已定义的变量可以重新定义
my_name="houbinbin"
my_name="ryo"
使用
- use_var.sh
my_name="houbinbin"
echo $my_name
- 运行
houbinbindeMacBook-Pro:shell houbinbin$ vi use_var.sh
houbinbindeMacBook-Pro:shell houbinbin$ /bin/sh use_var.sh
houbinbin
只读
readonly变量不能被更改。
- readonly_var.sh
# !/bin/bashmy_name="houbinbin"
readonly my_namemy_name="new name"
- 运行
houbinbindeMacBook-Pro:shell houbinbin$ vi readonly_var.sh
houbinbindeMacBook-Pro:shell houbinbin$ /bin/sh readonly_var.sh
readonly_var.sh: line 4: my_name: readonly variable
删除
使用 unset 来删除定义的变量。
- unset_var.sh
#!/bin/bashmy_name="ryo"
unset my_name
echo ${my_name}
- 运行
houbinbindeMacBook-Pro:shell houbinbin$ vi unset_var.sh
houbinbindeMacBook-Pro:shell houbinbin$ /bin/sh unset_var.shhoubinbindeMacBook-Pro:shell houbinbin$
特殊变量
| 命令 | 描述 |
|---|---|
| $0 | 当前脚本的文件名 |
| $n | 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 |
| $# | 传递给脚本或函数的参数个数。 |
| $* | 传递给脚本或函数的所有参数。 |
| $@ | 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。 |
| $? | 上个命令的退出状态,或函数的返回值。 |
| $$ | 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。 |
- special_var.sh
#!/bin/bash
echo "File Name: $0"
echo "First Parameter : $1"
echo "First Parameter : $2"
echo "Quoted Values: $@"
echo "Quoted Values: $*"
echo "Total Number of Parameters : $#"
- 运行
houbinbindeMacBook-Pro:shell houbinbin$ vi special_var.sh
houbinbindeMacBook-Pro:shell houbinbin$ /bin/sh special_var.sh hello world my
File Name: special_var.sh
First Parameter : hello
First Parameter : world
Quoted Values: hello world my
Quoted Values: hello world my
Total Number of Parameters : 3
$*和$@
$* 和 $@ 都表示传递给函数或脚本的所有参数,不被""包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。
但是当它们被""包含时,$* 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;$@ 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。
- diff_demo.sh
#!/bin/bash# Author:houbinbinecho "display of \$* "for i in "$*";
doecho $i
doneecho "display of \$@ "
for i in "$@";
doecho $i
done
- 运行
houbinbindeMacBook-Pro:shell houbinbin$ vi diff_demo.sh
houbinbindeMacBook-Pro:shell houbinbin$ /bin/sh diff_demo.sh 1 2 3 4
display of $*
1 2 3 4
display of $@
1
2
3
4
houbinbindeMacBook-Pro:shell houbinbin$
参考资料
https://www.runoob.com/linux/linux-shell.html
本文由博客一文多发平台 OpenWrite 发布!
相关文章:
linux Shell 命令行-02-var 变量
拓展阅读 linux Shell 命令行-00-intro 入门介绍 linux Shell 命令行-02-var 变量 linux Shell 命令行-03-array 数组 linux Shell 命令行-04-operator 操作符 linux Shell 命令行-05-test 验证是否符合条件 linux Shell 命令行-06-flow control 流程控制 linux Shell 命…...
C#MQTT编程10--MQTT项目应用--工业数据上云
1、文章回顾 这个系列文章已经完成了9个内容,由浅入深地分析了MQTT协议的报文结构,并且通过一个有效的案例让伙伴们完全理解理论并应用到实际项目中,这节继续上马一个项目应用,作为本系列的结束,奉献给伙伴们&#x…...
exceljs解析和生成excel文件
安装 npm install exceljs解析excel 通过 Workbook 的 readFile 方法可以拿到workbook对象, workbook对象包含的概念有 worksheet(工作表) --> row(行) --> cell(单元格).于是可以通过依次遍历 worksheet, row, cell来拿到单元格的数据直接通过 worksheet.getSheetValue…...
HCIP —— BGP 路径属性 (上)
目录 BGP 路径属性 1.优选Preferred-Value属性值最大的路由 2.优选Local-preference 属性数值大的路由 3.本地始发的BGP路由优先于其他对等体处学习到的路由。 4..优选AS_PATH属性值最短的路由 BGP 路径属性 BGP的路由选路是存在优选规则的,下图为华为官网提供…...
NIO学习总结(二)——Selector、FileLock、Path、Files、聊天室实现
一、Selector 1.1 Selector简介 1.1.1 Selector 和 Channel的关系 Selector 一般称为选择器 ,也可以翻译为 多路复用器 。 它是 Java NIO 核心组件中的一个,用于检查一个或多个 NIO Channel(通道)的状态是否处于可读、可写。由…...
面试经典150题(111-113)
leetcode 150道题 计划花两个月时候刷完之未完成后转,今天(第5天)完成了3道(111-113)150 111.(172. 阶乘后的零)题目描述: 给定一个整数 n ,返回 n! 结果中尾随零的数量。 提示 n! n * (n - 1…...
iOS17.4获取UDID安装mobileconfig描述文件失败 提示“安全延迟进行中”问题 | 失窃设备保护
iOS17.4这两天已经正式发布, 在iOS 17.4版本中新增了一个名为"失窃设备保护"的功能,并提供了一个"需要安全延迟"的选项。 iOS17.4获取UDID安装mobileconfig描述文件失败 提示“安全延迟进行中”问题 | 失窃设备保护 当用户选择启用…...
List--splice使用技巧
splice : 拼接两个list api: void dump(list<int>& li) {for(auto & i :li)cout<<i<< " ";cout<<endl; } int main() { list<int> li1 {1,3,5};list<int> li2 {2,4,6}; }1 c.splice(pos,c2); // li的开头插入li2链表…...
【最新版】ChatGPT/GPT4科研应用与AI绘图论文写作(最新增加Claude3、Gemini、Sora、GPTs技术及AI领域中的集中大模型的最新技术)
2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…...
离线数仓(六)【ODS 层开发】
前言 1、ODS 层开发 ODS层的设计要点如下: (1)ODS层的表结构设计依托于从业务系统同步过来的数据结构(JSON/CSV/TSV)。 (2)ODS层要保存全部历史数据,故其压缩格式应选择高压缩比的…...
PPT只要出现弹窗就闪退,Word和Excel都是正常的
1. 问题描述 PPT在常规使用下,能进行正常编辑和保存,但在使用过程中出现弹窗,类似于报错或者打开文件选项就会出现闪退,或者在添加新建页时选用右键添加时也会出现闪退。 找了很久的办法,才得到解决。记录一下。 2.…...
21、电源管理入门之芯片设计中的电源管理
目录 1. 关于PCSA和SCP 2. 关于PSCI和SCMI 3. 关于芯片SoC设计中的一些要点 参考: 这里以ARM为例来进行说明,我们在做驱动软件的时候,就需要跟硬件SoC里面的IP打交道,通过操作寄存器来实现硬件功能。之前的文章:ARM SCP入门-AP与SCP通信中3和4章节已经进行了简单介绍,…...
电脑打字突然变成繁体字如何修改
1. 右键电脑右下角的“中”字 2. 点击字符集,选中简体即可 有用的话记得给我点个赞啊~ 靴靴!...
NLP:文本相似度计算
前面我们已经实现了把长段的句子,利用HanLP拆分成足够精炼的分词,后面我们要实现“联想”功能,我这里初步只能想到通过文本相似度计算来实现。下面介绍一下文本相似度计算 (当然HanLP也有文本相似度计算的方法,这里我…...
复合查询【MySQL】
文章目录 复合查询测试表 单表查询多表查询子查询单行子查询多行子查询IN 关键字ALL 关键字ANY 关键字 多列子查询 合并查询 复合查询 测试表 雇员信息表中包含三张表,分别是员工表(emp)、部门表(dept)和工资等级表&…...
【Pytorch】进阶学习:深入解析 sklearn.metrics 中的 classification_report 函数---分类性能评估的利器
【Pytorch】进阶学习:深入解析 sklearn.metrics 中的 classification_report 函数—分类性能评估的利器 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合…...
探索云原生数据库技术:构建高效可靠的云原生应用
数据库是应用开发中非常重要的组成部分,可以进行数据的存储和管理。随着企业业务向数字化、在线化和智能化的演进过程中,面对指数级递增的海量存储需求和挑战以及业务带来的更多的热点事件、突发流量的挑战,传统的数据库已经很难满足和响应快…...
Jmeter+Ant+Git/SVN+Jenkins实现持续集成接口测试,一文精通(一)
前言 Jmeter,Postman一些基本大家相比都懂。那么真实在项目中去使用,又是如何使用的呢?本文将一文详解jmeter接口测试 一、接口测试分类 二、目前接口架构设计 三、市面上的接口测试工具 四、Jmeter简介,安装,环境…...
CSAPP Malloc lab
CSAPP Malloc Lab 目标 实现一个简单的动态存储分配器。 评分标准 空间利用率应当减少internal 和 external fragmentation. memory utilization memory utilization payload / heap size fragmentation internal fragmentation external fragmentation throughput T 越接…...
(黑马出品_06)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
(黑马出品_06)SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术ES搜索和数据分析 今日目标1. 查询文档1.1.DSL查询分类1.2.全文检索查询1.2.1.使用场景1.2.2.基本语法1.2.3.示例 1.3.精准查询1.3.1.term查询1.3.2.ran…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
