IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

详解Linux bash中的变量

运维派 2015-06-02 13:34:32 累计浏览 3,310 次
本机暂存

   在Linux系统中进行日常运维或者是编写脚本时,变量是再熟悉不过的了,但这些变量都有哪些类型,具体的用法又有哪些差异呢?本文整理分享给大家:

   一、bash变量类型:

   本地变量

   局部变量

   环境变量

   位置变量

   特殊变量(内置)

   二、本地变量:

   varname=value:作用域为整个bash进程可以使用;

   变量命名规范:

   1. 只能含字母、数字和下划线,并且以字母和下划线开头

   2. 最好不要跟系统已有的环境变量重名

   3. 见名知意

   三、局部变量:

   local varname=value:作用域为当前代码段;

   四、环境变量:

   作用域为当前shell进程及其子进程,不能影响到其父进程;

   export varname=value “导出”,如果变量已经定义可以只是用变量名 export varname,即

   1. export varname=value

   2. varname=value

   export varname

   脚本在执行命令时会启动一个子shell环境变量:

   系统自动执行的脚本(非命令行启动)就需要自我定义需要的个环境变量;

   五、位置变量:

   $1,$2,$3,……

   cat first.sh test.txt hello

   $1: first.sh

   $2: test.txt

   $3: hello

   shift:踢掉参数

   shift n:踢掉n个参数,默认踢掉一个参数

   六、特殊变量:

   $?:上一个命令执行状态的返回值:

   程序执行可能有两种返回值:

   1. 程序执行结果

   2. 程序状态返回吗(0-255)

   0 则为执行正确

   1-255 则执行出错(1,2,127系统预留);

   $#:获取当前shell命令行中参数的总个数

   $*:获取当前shell的所有参数 “$1 $2 $3 …,受IFS控制

   $@:这个程序的所有参数 “$1″ “$2″ “$3″ “…”,不受IFS控制

   $0 获取当前执行的shell脚本的文件名

   $n 获取当前执行的shell脚本的第n个参数值,n=1..9

   $$ 获取当前shell的进程号(PID)

   $! 执行上一个指令的PID

同分类推荐文章

  1. 从零重建 macOS 开发机:可复现的环境初始化流程 (2026-06-14 20:36:00)
  2. 百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形 (2026-06-11 08:10:28)
  3. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)

查看更多 DevOps 文章 →

建议继续学习

  1. Bash的模式和配置文件加载 (累计阅读 24,406)
  2. 高效Linux用户需要了解的命令行技能 (累计阅读 12,823)
  3. linux 建立两台机器的信任关系 (累计阅读 11,484)
  4. 利用脚本分析日志并利用snmp自定义OID,再通过cacti画图 (累计阅读 10,069)
  5. linux中设置alias永久生效 (累计阅读 9,604)
  6. Bash脚本15分钟进阶教程 (累计阅读 9,059)
  7. Linux 常见高危操作 (累计阅读 8,403)
  8. 你可能不知道的Shell (累计阅读 8,311)
  9. Linux shell脚本使用while循环执行ssh的注意事项 (累计阅读 8,188)
  10. Bash 小技巧:给目录加上书签,快速切换目录 (累计阅读 8,083)