03_Shell变量

news2024/9/30 21:27:14

【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=value

readonly 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/bash

export VAR=123
sh B.sh
B.sh
#!/bin/bash

echo $VAR

2.4、自定义变量的使用

#!/bin/bash

var_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 "$@"
do
  echo $item
done

for item in "$*"
do
  echo $item
done

在这里插入图片描述

#!/bin/bash 

#循环当中,没有双引号是没有区别的
for item in $@
do
  echo $item
done

for item in $*
do
  echo $item
done

在这里插入图片描述

3.4、特殊变量:$?

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

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

在这里插入图片描述

3.5、特殊变量:$$

获取当前Shell脚本的进程号

在这里插入图片描述

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

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

相关文章

tensorflow张量生成以及常用函数

张量tensor:多维数组(列表) 阶:张量的维数 维数 阶 名字 例子 0-D 0 标量 scalar s 1, 2, 3 1-D 1 向量 vector…

Mac VSCode 突然闪退、崩溃、打不开了

1、 思路历程 VSCode 作为前端常用开发工具,其重要性就不一一描述了。 所以 VSCode 突然打不开了,真的是让我一脸懵逼。 本来以为问题不大,于是 : 1、重启了一下VSCode 2、关机重启了一下电脑; 3、清理了一下缓存&am…

阈值分割后配合Connection算子和箭头工具快速知道区域的ID并选择指定区域

代码 dev_close_window () read_image (Image, E:/机器视觉学习/海康视觉平台/二期VM视觉学习/二期VM视觉学习/机器视觉程序/标定相机找圆心和焊头修正相机找圆心之算法软件/标定相机找圆心和焊头修正相机找圆心之算法软件/03 标定相机找圆心/S2/1号机/1.bmp) get_image_size …

Ensp配置防火墙的web界面

Ensp配置防火墙的web界面 准备工作新建网卡配置网卡 启动防火墙配置防火墙注意事项和错误如果云里面没有网卡选项防火墙启动不了没有web界面启动不了没有web界面 准备工作 新建网卡 我用的是win10系统,新建网卡 先右键管理 再点击设备管理器 --- 再网络适配器 接…

【Linux】System V信号量详解以及semget()、semctl()和semop()函数讲解

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

通用个人客户关系管理系统设计

设计一个通用个人客户关系管理系统(Personal CRM),旨在帮助个人用户管理他们的社交网络、职业联系人、个人项目和日常沟通,需要关注以下几个核心设计原则和功能模块: 核心设计原则 易用性:界面简洁直观&a…

【操作系统】进程管理——信号量机制(个人笔记)

学习日期:2024.7.9 内容摘要:信号量机制,用信号量实现进程的同步与互斥 信号量机制 信号量的概念 在上节内容中,我们学习了进程互斥的软件和硬件解决方案,但这些方案都有各自的问题,双标志法都因为检查和…

机器人三定律及伦理分析

全世界的机器人定律并没有一个统一的标准或体系,但是在科学文献中,最广为人知的是由科幻小说家阿西莫夫提出的“机器人三定律”。本文将以这些定律为基础,分析现有的机器人伦理和实际应用中的问题,给出若干实例,并对相…

LVS集群及其它的NAT模式

1.lvs集群作用:是linux的内核层面实现负载均衡的软件;将多个后端服务器组成一个高可用、高性能的服务器的集群,通过负载均衡的算法将客户端的请求分发到后端的服务器上,通过这种方式实现高可用和负载均衡。 2.集群和分布式&#…

【光伏仿真系统】光伏设计的基本步骤

随着全球对可再生能源需求的不断增长,光伏发电作为一种清洁、可再生的能源形式,正日益受到重视。光伏设计是确保光伏系统高效、安全、经济运行的关键环节,它涉及从选址评估到系统安装与维护的全过程。本文将详细介绍光伏设计的基本步骤&#…

AI大模型走进汽车车机,智驾将是未来

车机里的AI大模型在汽车行业中的应用越来越广泛,主要体现在智能座舱和自动驾驶系统的深度融合上。通过将AI大模型应用于车机系统,可以实现更高智能化的人车交互体验。AI大模型作为人工智能发展的核心引擎,正在成为汽车智能化发展的关键之一。…

【靶机实战】GeoServer 远程代码执行漏洞复现

# 在线靶场 可以通过访问极核官方靶场开启靶机实验:极核靶场 -> 漏洞复现靶场 -> GeoServer-远程代码执行 原文:【靶机实战】GeoServer 远程代码执行漏洞复现 - 极核GetShell (get-shell.com) # 简介 CVE-2024-36401是一个高危的远程代码执行漏…

Springboot项目实训--day2

今天学习的是idea和MySQL的连接,以及一些基本的增删改查的功能实现。 一、软件下载 昨天下载了idea,今天要是西安它们的连接,就需要再下载MySQL,我的MySQL是前面几个学期别人帮忙下载的,所以具体的操作步骤我也不清楚…

VSTO插件功能介绍-清除空行(列)

提示目前我的插件命名为“哆哆Excel”,还没有打包,主要是自己工作中要用到的东西,它能提高我的工作效率,10倍以上开发:Visual Studio 2019语言:VB.net看个图吧 今天要记录的问题是这样子的 当时有一个同事&…

HTTP 概况

Web的应用层协议是超文本传输协议(HyperTextTransferProtocol,HTTP),它是 Web的核心。HTTP由两个程序实现:一个客户程序和一个服务器程序。客户程序和服务器程序运行在不同的端系统中,通过交换HTTP报文进行会话。HTTP定义了这些报文的结构以及…

基于CentOS Stream 9平台搭建FRP内网穿透

内网穿透方法很多,本文以github上很火的frp为例 1.frp官方 文档:https://gofrp.org/zh-cn/docs/overview/ 1.1 下载 https://github.com/fatedier/frp/releases 选中合适的版本 2. 服务端(服务器)搭建frps 需要公网IP服务器 选…

Qt Creator仿Visual Studio黑色主题

转自本人博客:Qt Creator仿Visual Studio黑色主题 1.演示 配置文件和步骤在后面,先看成品,分别是QWidget和QML的代码编写界面: 2. 主题配置文件 下载链接:QtCreator _theme_VS_dark.xml 也可以自己新建一个xml文件&…

【单片机毕业设计选题24053】-基于单片机的WiFi控制门禁系统设计

系统功能: 系统上电后OLED显示智能门禁系统 Door:xxxxxx 初始化ESP8266完成后显示 Door:Closed 短按按键SW4可打开电磁锁OLED显示Door:Open,约五秒后电磁锁自动关闭OLED 显示Door:Closed 根据“TCP调试助手使用说明”操作, 在调试助手界面发送Open后…

14-56 剑和诗人30 - IaC、PaC 和 OaC 在云成功中的作用

介绍 随着各大企业在 2024 年加速采用云计算,基础设施即代码 (IaC)、策略即代码 (PaC) 和优化即代码 (OaC) 已成为成功实现云迁移、IT 现代化和业务转型的关键功能。 让我在云计划的背景下全面了解这些代码功能的当前状态。我们将研究现代云基础设施趋势、IaC、Pa…

雷达视频采集卡 HPx-410

产品简介 雷达视频采集卡 HPx-410,应用于接入导航雷达数据,导航雷达视频,适用于JRC雷达、古野furuon雷达、Sperry雷达等多种型号的雷达。 HPx-410 可以接入导航雷达数据,引入导航雷达原始回波,然后将雷达视频采集到计…