Bash常见的变量

25个常见Linux bash脚本示例:从变量循环到自动化运维实战 在Linux系统管理与运维工作中,Shell脚本是连接人工操作与自动化执行的桥梁。bash作为最主流的Shell解释器,其语法核心围绕变量赋值、位置参数、条件判断、循环遍历等基础概念展开。理解这些原理后,脚本才能真正发挥批处理、日志分析、系统监控与定时任务等技术价值。无论是处理文件备份、统计访问日志,还是检测服务器负载与磁盘占用,bash都能以轻量方式快速落地。对于刚接触命令行的开发者而言,通过可运行的示例学习比死记语法手册更高效。本文从基础流程控制出发,逐步深入到文件操作、文本提取、资源监控和发布自动化, 阅读详情

Bash的变量


  • SHELL 当前shell程序的路径。
  • BASH_SUBSHELL当前在第几层子shell,从0开始数。
  • CDPATH 冒号分隔的目录列表,作为cd命令的搜索路径
  • HOME 当前用户的主目录
  • IFS shell用来将文本字符串分割成字段的一系列字符
  • MAIL 当前用户收件箱的文件名( bash shell会检查这个文件,看看有没有新邮件)
  • MAILPATH 冒号分隔的当前用户收件箱的文件名列表( bash shell会检查列表中的每个文件,看看有没有新邮件)
  • OPTARG getopts命令处理的最后一个选项参数值
  • OPTIND getopts命令处理的最后一个选项参数的索引号
  • PATH shell查找命令的目录列表,由冒号分隔
  • PS1 shell命令行界面的主提示符
  • PS2 shell命令行界面的次提示符
  • BASH 当前shell实例的全路径名
  • BASH_ALIASES 含有当前已设置别名的关联数组
  • BASH_ARGC 含有传入子函数或shell脚本的参数总数的数组变量
  • BASH_ARCV 含有传入子函数或shell脚本的参数的数组变量
  • BASH_CMDS 关联数组,包含shell执行过的命令的所在位置
  • BASH_COMMAND shell正在执行的命令或马上就执行的命令
  • BASH_ENV 设置了的话,每个bash脚本会在运行前先尝试运行该变量定义的启动文件
  • BASH_EXECUTION_STRING 使用bash -c选项传递过来的命令
  • BASH_LINENO 含有当前执行的shell函数的源代码行号的数组变量
  • BASH_REMATCH 只读数组,在使用正则表达式的比较运算符=~进行肯定匹配( positive match)时,包含了匹配到的模式和子模式
  • BASH_SOURCE 含有当前正在执行的shell函数所在源文件名的数组变量
  • BASH_SUBSHELL 当前子shell环境的嵌套级别(初始值是0)
  • BASH_VERSINFO 含有当前运行的bash shell的主版本号和次版本号的数组变量
  • BASH_VERSION 当前运行的bash shell的版本号
  • BASH_XTRACEFD 若设置成了有效的文件描述符( 0、 1、 2),则’set -x’调试选项生成的跟踪输出可被重定向。通常用来将跟踪输出到一个文件中
  • BASHOPTS 当前启用的bash shell选项的列表
  • BASHPID 当前bash进程的PID
  • COLUMNS 当前bash shell实例所用终端的宽度
  • COMP_CWORD COMP_WORDS变量的索引值,后者含有当前光标的位置
  • COMP_LINE 当前命令行
  • COMP_POINT 当前光标位置相对于当前命令起始的索引
  • COMP_KEY 用来调用shell函数补全功能的最后一个键
  • COMP_TYPE 一个整数值,表示所尝试的补全类型,用以完成shell函数补全
  • COMP_WORDBREAKS Readline库中用于单词补全的词分隔字符
  • COMP_WORDS 含有当前命令行所有单词的数组变量
  • COMPREPLY 含有由shell函数生成的可能填充代码的数组变量
  • COPROC 占用未命名的协进程的I/O文件描述符的数组变量
  • DIRSTACK 含有目录栈当前内容的数组变量
  • EMACS 设置为’t’时,表明emacs shell缓冲区正在工作,而行编辑功能被禁止
  • ENV 如果设置了该环境变量,在bash shell脚本运行之前会先执行已定义的启动文件(仅用于当bash shell以POSIX模式被调用时)
  • EUID 当前用户的有效用户ID(数字形式)
  • FCEDIT 供fc命令使用的默认编辑器
  • FIGNORE 在进行文件名补全时可以忽略后缀名列表,由冒号分隔
  • FUNCNAME 当前执行的shell函数的名称
  • FUNCNEST 当设置成非零值时,表示所允许的最大函数嵌套级数(一旦超出,当前命令即被终止)
  • GLOBIGNORE 冒号分隔的模式列表,定义了在进行文件名扩展时可以忽略的一组文件名
  • GROUPS 含有当前用户属组列表的数组变量
  • histchars 控制历史记录扩展,最多可有3个字符
  • HISTCMD 当前命令在历史记录中的编号
  • HISTCONTROL 控制哪些命令留在历史记录列表中
  • HISTFILE 保存shell历史记录列表的文件名(默认是.bash_history)
  • HISTFILESIZE 最多在历史文件中存多少行
  • HISTTIMEFORMAT 如果设置了且非空,就用作格式化字符串,以显示bash历史中每条命令的时间戳
  • HISTIGNORE 由冒号分隔的模式列表,用来决定历史文件中哪些命令会被忽略
  • HISTSIZE 最多在历史文件中存多少条命令
  • HOSTFILE shell在补全主机名时读取的文件名称
  • HOSTNAME 当前主机的名称
  • HOSTTYPE 当前运行bash shell的机器
  • IGNOREEOF shell在退出前必须收到连续的EOF字符的数量(如果这个值不存在,默认是1)
  • INPUTRC Readline初始化文件名(默认是.inputrc)
  • LANG shell的语言环境类别
  • LC_ALL 定义了一个语言环境类别,能够覆盖LANG变量
  • LC_COLLATE 设置对字符串排序时用的排序规则
  • LC_CTYPE 决定如何解释出现在文件名扩展和模式匹配中的字符
  • LC_MESSAGES 在解释前面带有$的双引号字符串时,该环境变量决定了所采用的语言环境设置
  • LC_NUMERIC 决定着格式化数字时采用的语言环境设置
  • LINENO 当前执行的脚本的行号
  • LINES 定义了终端上可见的行数
  • MACHTYPE 用“ CPU公司系统”( CPU-company-system)格式定义的系统类型
  • MAPFILE 一个数组变量,当mapfile命令未指定数组变量作为参数时,它存储了mapfile所读入的文本
  • MAILCHECK shell查看新邮件的频率(以秒为单位,默认值是60)
  • OLDPWD shell之前的工作目录
  • OPTERR 设置为1时, bash shell会显示getopts命令产生的错误
  • OSTYPE 定义了shell所在的操作系统
  • PIPESTATUS 含有前台进程的退出状态列表的数组变量
  • POSIXLY_CORRECT 设置了的话, bash会以POSIX模式启动
  • PPID bash shell父进程的PID
  • PROMPT_COMMAND 设置了的话,在命令行主提示符显示之前会执行这条命令
  • PROMPT_DIRTRIM 用来定义当启用了\w或\W提示符字符串转义时显示的尾部目录名的数量。被删除的目录名会用一组英文句点替换
  • PS3 select命令的提示符
  • PS4 如果使用了bash的-x选项,在命令行之前显示的提示信息
  • PWD 当前工作目录
  • RANDOM 返回一个0~ 32767的随机数(对其的赋值可作为随机数生成器的种子)
  • READLINE_LINE 当使用bind –x命令时,存储Readline缓冲区的内容
  • READLINE_POINT 当使用bind –x命令时,表示Readline缓冲区内容插入点的当前位置
  • REPLY read命令的默认变量
  • SECONDS 自从shell启动到现在的秒数(对其赋值将会重置计数器)
  • SHELL bash shell的全路径名
  • SHELLOPTS 已启用bash shell选项列表,列表项之间以冒号分隔
  • SHLVL shell的层级;每次启动一个新bash shell,该值增加1
  • TIMEFORMAT 指定了shell的时间显示格式
  • TMOUT select和read命令在没输入的情况下等待多久(以秒为单位)。默认值为0,表示无限长
  • TMPDIR 目录名,保存bash shell创建的临时文件
  • UID 当前用户的真实用户ID(数字形式)
Anaconda创建python环境常见命令 Anaconda功能庞大,其可以理解为一个工具,也是一个可执行命令。Anaconda可以创建多个python环境,且python环境间相互独立。 阅读详情

相关推荐

Proteus+汇编+8086电子时钟实战:从框架搭建到中断驱动的核心实现

本文详细介绍了使用Proteus仿真软件和8086汇编语言实现电子时钟的完整过程。从程序框架搭建、内存分段模型理解,到核心的8259中断控制器配置与编程,再到中断服务程序编写和数码管动态扫描显示驱动,系统阐述了底层软硬件协同开发的核心原理与实战步骤。该项目是深入理解计算机中断机制和汇编语言编程的绝佳实践。

weixin_29189381的博客 413

Shell编程之环境变量的配置

文章目录source命令. 命令开机时 ,配置文件的调用/etc/profile~/.bash_profile~/.bashrc/etc/bashrc注销环境变量配置文件~/.bash_logout登录信息/etc/issue/etc/motdw命令bash的快捷键ctrl+c :终止当前终端的命令,如:pingctrl+d :结束当前终端,如:结束用户登录,结束交互式命令,结束当前终端stt...

老徐是个铁憨憨 919

逆变器专题(9)-基于dq坐标系的逆变器解耦控制建模与实时仿真分析

本文深入探讨了基于dq坐标系的逆变器解耦控制建模与实时仿真分析。通过生动的比喻和详细的数学推导,阐述了如何通过坐标变换和前馈补偿实现d轴与q轴的独立控制,从而提升系统动态性能与稳定性。文章还介绍了在MATLAB/Simulink中搭建仿真模型、分析动态响应与稳定性的方法,并展望了硬件在环(HIL)实时仿真的高级验证手段,为新能源并网与电机驱动领域的工程师提供了宝贵的实践指南。

gold的博客 547

Linux 命令搜集

linux共享库位置配置(LD_LIBRARY_PATH环境变量 或者 更改/etc/ld.so.conf 或者 使用-R选项)

Ant 630

超详细流式细胞术全流程解析:从样本制备到结果分析全攻略

流式细胞术(Flow Cytometry)是现代生物学和医学研究中不可或缺的高通量分析技术,可实现对细胞表型、功能状态、细胞周期等多维度参数的快速检测。本文将从实验全流程出发,详解样本制备、上机操作、参数设置及结果处理的核心要点,帮助科研人员精准掌握流式实验关键技术。

good_rrrrr的博客 3868

QT入门开发一个时钟

本文讲述了时钟开发的具体过程以及代码。 涉及到一下几个知识点: 1. 定时器使用 2. 本地时间获取 3. resource资源读取 4. 图片绘制 5. 图片按照中心旋转 6. sin或者cos角度计算。

啊渊的专栏 5145

Shell 批量停起库脚本

#!/bin/bash for port in `awk -F: '{print $1}' #! /bin/bash for port in `awk -F: '{print $1}' /paic/redis/tools/etc/db_info_bak.txt` do echo ${port} ver=`awk -F: '{if ($1 == "'${port}'")

sunguowei1988的专栏 363

TC3XX - MCAL知识点(二十九):FLS MCAL配置及代码实战(英飞凌DFLASH)

FLS驱动程序为DFlash 0的初始化、读取、写入和擦除提供了定义良好的配置和标准服务。除此之外,我们还提供一些非autosar服务示例 Fls_17_Dmu_CompareWordsSync、Fls_17_Dmu_CancelNonEraseJobs、Fls_17_Dmu_VerifyErase,LFls_17_Dmu_VerifySectorErase、Fls_17_Dmu_GetNotifCaller等。用户通过FLS驱动程序获得对底层DFlash0的封装访问。

梦想技术家 2363

Shell编程

Shell编程shell 是什么Shell 脚本的执行方式脚本的常用执行方式shell 的变量将命令的返回值赋给变量设置环境变量 shell 是什么 Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至是编写一些程序. Shell 脚本的执行方式 脚本格式要求 脚本以#!/bin/bash 开头 脚本需要有可执行权限 编写第一个 Shell 脚本 创建一个 Shell 脚本,输出 hello worl

Hello World 987

ubuntu:E: 无法定位软件包yum解决方法

如果出现以下问题,则需要更新yum源 yum源位于/etc/apt/sources.list yum源更新的网站有 清华大学开源镜像 中科大开源镜像 1.此处更新yum源的时候先备份 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo gedit /etc/apt/sources.list 将更新源替换成上面符合版本系列号 我用的版本号为20.04 # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释

码农研究僧的博客 1万+

C# WinForms 多语种切换实现:打造国际化应用程序

合理实现多语种切换功能可以显著提升应用程序的国际化水平。模块化设计:将本地化逻辑模块化,便于管理和维护。异常处理:始终捕获和处理可能的异常,确保程序的健壮性。资源管理:合理管理资源文件,避免重复和遗漏。测试:在不同语言环境下进行全面测试,确保所有字符串都能正确显示。文档和注释:为关键代码添加详细的文档和注释,便于后续维护。

墨夶的博客 1691

Linux $HOME/.bash_profile文件解析

Linux $HOME/.bash_profile文件解析

qq_21370419的博客 2379

Trae IDE项目开发全流程深度技巧与最佳实践

2026年AI开发新范式:Trae AI IDE深度解析 摘要 2026年,AI已成为软件开发的核心驱动力。字节跳动推出的AI原生IDE——Trae,从根本上重塑了开发体验,将AI作为第一公民而非附加功能。Trae通过深度集成大型语言模型和创新交互模式,解决了现代开发中的重复劳动、信息过载等核心痛点。 报告全面剖析了Trae的核心功能: 智能代码生成:支持上下文感知续写、自然语言驱动生成和多模态输入转换 对话式AI助手:提供侧边栏和行内对话模式,支持代码解释、Bug修复、重构建议等 Builder/SOLO

公众号:AI前沿侦探 159

Bash 环境变量常见问题及解决方法

局部变量与全局变量混淆可能导致问题。在脚本中定义的变量默认局部,需使用。跨终端会话时,确保变量定义在全局配置文件(如。子进程继承父进程环境变量,但父进程不感知子进程的修改。检查是否有多个脚本或配置文件重复设置同一变量。命令显示所有变量(包括局部变量)。若为空,需重新设置。临时设置的变量仅在当前会话有效。引用变量,后者可明确变量边界。检查环境变量是否已正确设置,使用。使更改立即生效,无需重启终端。搜索所有可能的定义位置。临时设置,或将其添加到。修改配置文件后需执行。执行脚本可共享环境。

xcklqtzy93035cfc的博客 391

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

常见 Bash 内置变量介绍

目录 $0$1, $2 等等$#$* 与 "$*"$@ 与 "$@"$!$_$$$PPID$?$BASH$BASH_VERSION$EUID 与 $UID$GROUPS$HOME$HOSTNAME$IFS$PATH$OLDPWD$PWD$PS1$PS2$PS4 $0 执行 Bash 脚本时,Bash 会自动将脚本的名称保存在内置变量 $0 中。因为 $0 基于的是实际的脚本文件名称,而不是在脚本中...

weixin_33725126的博客 1497

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

shell脚本编程学习笔记4(xdl)——Bash常见环境变量

shell脚本编程学习笔记4——Bash常见环境变量非专业运维,例如开发人员,环境变量熟悉常见的,了解不常见的即可。1,简介环境变量配置文件中主要是定义对系统的 操作环境生效的系统默认环境变量,比如 PATH、 HISTSIZE、PS1、HOSTNAME等 默认环境变量。  常见环境变量路径     /etc/profile      /etc/profile.d/*.sh      ~...

敦煌的驼铃_Blog 364

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

bash中常见环境变量env、set、export 、declare与bash漏洞原理

今天被同事问到env与set的区别,感觉很久不看忘了,所以简单的记一笔,方便后续查阅 初识env env命令可以显示当前用户的环境变量,还可以用来在指定环境变量下执行其他命令 env查看有哪些环境变量,并且可以用$ 变量读取env中的变量名对应的变量值 set,env和export、以及declare命令的异同: set命令显示当前shell的变量,包括当前用户的变量 env命令...

weixin_30745553的博客 1092

Bash 语言变量定义常见问题及解决办法

变量定义时等号两侧不能有空格,否则会被视为命令和参数。my_var="value" # 正确my_var = "value" # 错误:等号两侧有空格Bash 支持数组,需用括号声明,引用时需下标或@/*echo "${colors[1]}" # 输出 greenecho "${colors[@]}" # 输出所有元素。

dzfowt3904giu的博客 338

shell特殊变量演示(三)常见的bash shell常见内置命令的参数

常见的bash shell常见内置命令的参数 echo [root@6 server]# echo -n 111;echo 222 -n:不换行输出内容 [root@6 server]# echo -e "daidai\taimi\nniuniu\tnaonao" \t空格的作用。 \n重新开启新一行 read 作用于从标准输入读取字符串等信息,传给shell程序内部...

IT学习笔记记录 278

bash系统变量

BASH内置变量 (1).BASH 作用:bash的完整路径.默认为/bin/bash (2).BASH_ENV 作用:仅在非交互模式中适用.在执行shell脚本时,会先检查该变量是否指定了启动 脚本,若指定则先执行它指定的启动脚本. (3).BASH_VERSION 作用:bash的版本号 实例:echo $BASH_VERSION (4).CDPATH 作用:cd的搜索路径

mkelehk的专栏 750

linux 变量赋值 出错,关于shell:Bash变量赋值中的命令未找到错误

我有一个叫做test.sh的脚本:#!/bin/bashSTR ="Hello World"echo $STR当我运行sh test.sh时,我得到了:test.sh: line 2: STR: command not found我做错什么了?我在网上看了非常基础/初学者的bash脚本教程,这就是他们如何声明变量…所以我不知道我做错了什么。我在Ubuntu服务器9.10上。是的,bash位于/bi...

weixin_39716510的博客 912

bash的常见用法

Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。由于早年的Unix年代,发展者众,所以由于shell依据发展者的不同就有许多的版本,例如常听到的Bourne  SHell(sh)、在Sun    里头默认的 C  SHell、    商业上常用的K   SHel...

LZH_12345的博客 2116

5.4.2 Bash的内部变量

Bash的内部变量

weixin_43446462的博客 192

linux bash环境变量简单总结

来源链接:http://www.178linux.com/8005 原创文章,如有转载,请注明原文地址 一.环境变量简介 Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都 是相同的,这个默认环境实际上就是一组环境变量的定义。 环境变量是全局的,设置好的环境变量可以被所有当前用户所运行的程序所使用。 用户可以对自己的运行环...

dbna5213的博客 164

Bash中的变量类型,你知道几种?

你必须非常努力,才能看起来毫不费力! 微信搜索公众号[ 漫漫Coding路 ],一起From Zero To Hero ! 前言 与 Java、Go 等编程语言类似,Bash 中也可以自定义变量,那么如何自定义变量呢?除了自定义变量之外,Bash中还有没有其他类型的变量供我们使用呢?一起来学习吧! 变量分类 在 Bash 中,变量主要分为以下四种类型: 自定义变量:类似Java、Go语言中的自定义变量,灵活性最高; 环境变量:主要保存和系统环境相关的变量,系统已经定义好了很多环境变量,同时允许用户新增.

u012948302的专栏 2177

Linux Shell基础-Bash变量

变量名称不可以数字开头,可以使用字母,数字,下划线 变量赋值name=name 切记等号‘=’两边不能右括号 若想让变量从name增加为name_my可以用name=name=name={name}_my更新name变量的值 把date变量赋值为date命令的结果可以date=$(date) 把date赋值为date命令的结果 环境变量可以添加,查看,虽然不可以更改名称,但可以修改...

qq_43149127的博客 208
上一篇: shell中的变量扩展
下一篇: Why the “volatile” type class should not be used
InvokerZhang
博客等级 码龄11年 9粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值