03_Shell变量

【Shell】03_Shell变量

一、环境变量

Linux系统配置文件(全局配置文件和用户个人配置文件)中定义的变量,提供给所有Shell程序使用

1.1、全局环境变量

1.1.1、配置文件位置

/etc/environment

/etc/bashrc(或者/etc/bash.bashrc)

/etc/profile(或者/etc/bash_profile)

/etc/profile.d/xxx.sh

1.1.2、常用全局环境变量
变量名称含义
PATH类似于Windows的Path环境变量
HOME当前用户家目录
SHELL查看当前SHELL解析器
HISTFILE查看history命令 存储目录
LANG查看当前系统语言

在这里插入图片描述

1.2、用户环境变量

1.2.1、配置文件位置

~/.bashrc

/.profile(部分系统为:/.bash_profile)

1.3、查看环境变量

env   查看系统环境变量
set   查看系统环境变量 + 自定义变量 + 函数

还有终端一次性配置,参考博文 https://blog.csdn.net/Holenxr/article/details/137219507

二、自定义变量

2.1、自定义局部变量

定义在一个脚本文件中的变量,只能在这个脚本文件中使用的变量

#!/bin/bash var_name=value

2.2、自定义常量

变量设置值后不可以修改的变量,也叫只读常量

#!/bin/bash var_name=valuereadonly var_name

2.3、自定义全局变量

在当前脚本文件中定义,在当前Shell环境和子Shell环境中都可以使用的变量

2.3.1、父子Shell环境介绍

有两个Shell脚本1.sh和2.sh,如果在1.sh中执行了2.sh,那么1.sh就是父Shell环境,2.sh就是子Shell环境。

2.3.2、语法及示例
#!/bin/bash#语法1:
var_name=value
export var_name
#语法2:
export var_name=value

实例:在A.sh中定义一个变量VAR,B.sh中打印VAR,在A.sh中执行B.sh。

A.sh
#!/bin/bashexport VAR=123
sh B.sh
B.sh
#!/bin/bashecho $VAR

2.4、自定义变量的使用

#!/bin/bashvar_name=value#使用变量
#用法1:
echo $var_name
#用法2:
echo ${var_name}
#区别:花括号方式适合拼接字符串#删除变量
unset var_name

三、特殊变量

3.1、特殊变量:$n

用于获取脚本文件执行时传入的参数

$0     用于获取当前脚本文件名
$1~$9  用于获取第1个到第9个输入参数
${数字} 用于获取第10个以上输入参数

3.2、特殊变量:$#

用于获取脚本文件执行时参数的个数

3.3、特殊变量:$* 和 $@

获取所有输入参数

#!/bin/bash #直接打印时,两个变量是没有区别的,与单双引号无关,都是"$1 $2 ... $n"
echo "$@"
echo $@
echo "$*"
echo $*

在这里插入图片描述

#!/bin/bash #循环当中,有双引号是有区别的
for item in "$@"
doecho $item
donefor item in "$*"
doecho $item
done

在这里插入图片描述

#!/bin/bash #循环当中,没有双引号是没有区别的
for item in $@
doecho $item
donefor item in $*
doecho $item
done

在这里插入图片描述

3.4、特殊变量:$?

用于获取上一个Shell命令的退出状态码,或者是函数返回值

一般0代表执行成功,非0代表执行失败

在这里插入图片描述

3.5、特殊变量:$$

获取当前Shell脚本的进程号

在这里插入图片描述

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

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

相关文章

《梦醒蝶飞:释放Excel函数与公式的力量》10.1.1函数简介

10.1.1函数简介 BIN2DEC函数是Excel中用于将二进制数转换为十进制数的函数。它在处理二进制数时非常有用,尤其是在电子工程、计算机科学等领域。 10.1.2函数语法: BIN2DEC(number) number:这是要转换的二进制数,必须是以字符串…

通过软件资产管理系统实现NX软件许可证的精准管理!

引言 在现代企业中,NX软件许可证管理是IT运维工作的重要组成部分。然而,用户部门反映NX许可证不够用且使用紧张,但缺乏可靠的数据支持,导致许可证的采购和管理面临挑战。本文将介绍如何利用smartlic软件资产管理系统,…

HNU小学期BSP软件编程基础十道测试题

http://t.csdnimg.cn/Yv0R1 文章参考了这位大佬的代码,在他的基础上进行了纠错、完善等处理。 配置 编程前的准备工作按大佬的流程即可,稍有不同的是学习通课程网站的资料里没有头文件的整个压缩包了,但我们可以下载某个BSP版的工程文件&am…

C语言 找出一个二维数组中的鞍点

找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。 #include <stdio.h>int main() {int matrix[4][4] {{10, 17, 13, 28},{21, 14, 16, 40},{30, 42, 23, 39},{24, 11, 19, 17}};int n 4, m 4;int found 0;for (int i 0; i …

磁力搜索引擎是什么?为什么有些资源喜欢用磁力链接?

磁力链接是什么东西&#xff1f;在日常生活中&#xff0c;我们接触的比较多的下载链接是直链。 所谓的直链简单来说就是直接指向服务器文件资源的链接&#xff0c;如B站app的下载链接&#xff0c;这种链接有统一的服务器提供保障&#xff0c;通常比较稳定&#xff0c;可以追溯源…

python调用qt编写的dll

报错&#xff1a;FileNotFoundError: Could not find module F:\pythonProject\MINGW\sgp4Lib.dll (or one of its dependencies). Try using the full path with constructor syntax. 只有两种情况&#xff1a; 1.路径不对 2.库的依赖不全 1、如果是使用了qt库的&#xff0…

transformer的了解

1.transformer的优化策略 1&#xff09;GQA&#xff0c;减少推理过程中的KV缓存大小&#xff0c;增加上下文长度&#xff08;KV 缓存&#xff08;即 Key-Value 缓存&#xff09;用于加速 Transformer 模型在推理过程中处理长序列时的计算。要减少 KV 缓存的大小&#xff09; 2&…

JAVA Tesseract OCR引擎

Tess4j是一个基于Tesseract OCR引擎的Java库, Tesseract库最初由惠普实验室于1985年开发&#xff0c;后来被Google收购并于2006年开源。识别效果不好&#xff0c;速度还慢&#xff0c;但是好早好早了。 一、POM依赖 <!--OCR识别https://digi.bib.uni-mannheim.de/tesserac…

一文洞悉巴基斯坦电子游戏出海引流获客广告风口不容忽视

一文洞悉巴基斯坦电子游戏出海引流获客广告风口不容忽视 随着全球数字经济的蓬勃发展&#xff0c;电子游戏行业也迎来了前所未有的机遇。巴基斯坦&#xff0c;这个拥有庞大人口基数和日益增长的消费能力的国家&#xff0c;其电子游戏市场潜力巨大。本文旨在探讨巴基斯坦电子游戏…

springboot驾校管理系统-计算机毕业设计源码49777

驾校管理系统 摘 要 驾校管理系统是一个基于Spring Boot框架开发的系统&#xff0c;旨在帮助驾校提高管理效率和服务水平。该系统主要实现了用户管理、年月类型管理、区域信息管理、驾校信息管理、车辆信息管理、报名信息管理、缴费信息管理、财务信息管理、教练分配管理、更换…

获取和设置Spring Cookie

一.获取浏览器中的cookie public void testGetCookie(HttpServletRequest request){//request获取的Cookie是个数组Cookie[] cookies request.getCookies();if (cookies ! null&&cookies.length>0) {for (Cookie cookie : cookies) {//获取Cookie名称String cooki…

探索未知,悦享惊喜 —— 您的专属盲盒APP开发之旅

在这个充满无限可能的数字时代&#xff0c;每一份期待都值得被精心打造。我们诚邀您一同踏入盲盒APP开发的奇妙世界&#xff0c;共同开启一场融合趣味、惊喜与社交的全新体验。 【概念启航&#xff1a;盲盒文化的数字化演绎】 盲盒&#xff0c;这一源自传统玩具的趣味玩法&am…

java Object 转 Integer

在 Java 中&#xff0c;可以通过多种方法将一个 Object 转换为 Integer。这里有几种常见的方法&#xff1a; 使用类型转换和自动装箱&#xff08;如果 Object 实际上是一个 Integer 类型&#xff09;&#xff1a; Object obj 42; // 假设这是一个 Integer 对象 if (obj instan…

Java面试题系列 - 第6天

题目&#xff1a;深入理解Java内存模型&#xff08;JMM&#xff09;及线程可见性 背景说明&#xff1a;Java内存模型&#xff08;Java Memory Model&#xff0c;简称JMM&#xff09;是Java虚拟机规范的一部分&#xff0c;用于描述Java程序中各种变量&#xff08;线程共享变量&…

含空格字符串处理方法总结

读取按单个字符判断的字符串 chcin.get() 读取含空格的字符串方法 getline(cin,s); 想要对回车符号单独处理 getchar() //吸收回车符 真题练习&#xff0c;用字符串流的方法处理空格情况。 通用方法&#xff1a;字符串流 istringstream ss(字符串)(ss >> )分割。 151…

python爬虫基础入门

步骤 获取网页内容&#xff1a; http请求 python的Requests库 解析网页内容 html网页结构 python的Beautiful Soup库 储存或分析数据 储存进数据库 作为ai分析的数据 转化为图表显示出来 DDoS攻击 通过给服务器发送海量高频请求&#xff0c;大量消耗网页资源&#…

昇思25天学习打卡营第12天|基于MindSpore的GPT2文本摘要

基于MindSpore的GPT2文本摘要 数据集加载 使用nlpcc2017摘要数据&#xff0c;共包含5万个样本&#xff0c;内容是新闻正文及其摘要。 from mindnlp.utils import http_get from mindspore.dataset import TextFileDataset# 下载数据集 url https://download.mindspore.cn/t…

MVC 可以把通用命名空间放在配置文件

这种方式的引入,是将命名空间引入到所有视图中了,不需要在使用using单独引用了。

【框架】ABP(ASP.NET Boilerplate Project)

ABP架构是“ASP.NET Boilerplate Project”&#xff08;ASP.NET样板项目&#xff09;的简称&#xff0c;它是一个基于领域驱动设计&#xff08;DDD&#xff09;的开源应用程序框架&#xff0c;支持.NET Framework和.NET Core。ABP旨在成为开发现代WEB应用程序的新起点&#xff…

使用Gstreamer时遇到WARNING: erroneous pipeline: no element “x264enc“(亲测有效)

WARNING: erroneous pipeline: no element “x264enc” 解决&#xff1a; 我下了gstreamer1.0-plugins-ugly包就解决了 sudo apt install -y gstreamer1.0-plugins-ugly