Linux运维工程师必备的Bash变量

一、特殊变量

Bash提供了许多特殊变量,它们在Bash脚本中非常有用。

1、$0:当前脚本的文件名。

#!/bin/bash
echo "当前脚本文件名:$0"

输出结果:

当前脚本文件名:test.sh

2、$1、$2、$3…:位置参数,表示脚本执行时传递的参数。

#!/bin/bash
echo "第1个参数为:$1"
echo "第2个参数为:$2"
echo "第3个参数为:$3"

执行脚本:./test.sh aa bb cc

输出结果:

第1个参数为:aa
第2个参数为:bb
第3个参数为:cc

3、$#:参数个数。

#!/bin/bash
echo "参数个数为:$#"

执行脚本:./test.sh aa bb cc

输出结果:

参数个数为:3

4、$@:所有参数,作为一个字符串使用。

#!/bin/bash
echo "所有参数为:$@"

执行脚本:./test.sh aa bb cc

输出结果:

所有参数为:aa bb cc

5、$?:上一个命令的退出状态码。

#!/bin/bash
ls /root
echo "退出状态码为:$?"

输出结果:

ls: 无法访问/root: 没有那个文件或目录
退出状态码为:2

二、环境变量

环境变量是在操作系统中存储的一个值,可以被许多进程或程序共享。

1、$PATH:环境变量,表示可执行程序的搜索路径。

#!/bin/bash
echo $PATH

输出结果:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2、$HOME:环境变量,表示当前用户的主目录路径。

#!/bin/bash
echo $HOME

输出结果:

/home/tom

3、$USER:环境变量,表示当前用户的用户名。

#!/bin/bash
echo $USER

输出结果:

tom

三、自定义变量

自定义变量可以在Bash脚本中自由定义,起到存储临时数据的作用。

1、定义变量:

#!/bin/bash
var="hello world"
echo $var

输出结果:

hello world

2、定义只读变量:

#!/bin/bash
readonly var="hello world"
var="new world"

执行脚本会报错:

test.sh: line 3: var: readonly variable

3、删除变量:

#!/bin/bash
var="hello world"
echo $var
unset var
echo $var

输出结果:

hello world

四、数组变量

数组变量是一个存储多个值的命名变量,可以在Bash脚本中使用。

1、定义数组变量:

#!/bin/bash
arr=("apple" "orange" "banana")
echo ${arr[0]}
echo ${arr[1]}
echo ${arr[2]}

输出结果:

apple
orange
banana

2、获取数组的长度:

#!/bin/bash
arr=("apple" "orange" "banana")
echo ${#arr[@]}

输出结果:

3

3、获取数组的所有值:

#!/bin/bash
arr=("apple" "orange" "banana")
echo ${arr[@]}

输出结果:

apple orange banana

五、全局变量和局部变量

在Bash脚本中,变量作用域分为全局变量和局部变量。

1、全局变量:

#!/bin/bash
var="hello world"
function test() {
   echo $var
}
test

输出结果:

hello world

2、局部变量:

#!/bin/bash
function test() {
   var="hello world"
   echo $var
}
test
echo $var

执行脚本会报错:

test.sh: line 7: var: unbound variable

原创文章,作者:HCFF,如若转载,请注明出处:https://www.506064.com/n/135512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
HCFFHCFF
上一篇 2024-10-04 00:13
下一篇 2024-10-04 00:13

相关推荐

  • int类型变量的细节与注意事项

    本文将从 int 类型变量的定义、声明、初始化、范围、运算和类型转换等方面,对 int 类型变量进行详细阐述和讲解,帮助读者更好地掌握和应用 int 变量。 一、定义与声明 int…

    编程 2025-04-29
  • Python input参数变量用法介绍

    本文将从多个方面对Python input括号里参数变量进行阐述与详解,并提供相应的代码示例。 一、基本介绍 Python input()函数用于获取用户输入。当程序运行到inpu…

    编程 2025-04-29
  • lsw2u1:全能编程开发工程师的利器

    lsw2u1是一款多功能工具,可以为全能编程开发工程师提供便利的支持。本文将从多个方面对lsw2u1做详细阐述,并给出对应代码示例。 一、快速存取代码段 在日常开发中,我们总会使用…

    编程 2025-04-29
  • 7ezmpyh全能编程工程师

    7ezmpyh是一个完全能胜任各种编程任务的全能编程工程师。本文将从多个方面对7ezmpyh进行详细阐述,包括他的编程技能、项目经验和个人特点。 一、编程技能 7ezmpyh拥有广…

    编程 2025-04-29
  • Python匿名变量的使用方法

    Python中的匿名变量是指使用“_”来代替变量名的特殊变量。这篇文章将从多个方面介绍匿名变量的使用方法。 一、作为占位符 匿名变量通常用作占位符,用于代替一个不需要使用的变量。例…

    编程 2025-04-29
  • 全能编程开发工程师必备技能——如何优化大整数的计算

    本文将会为你分享如何解决大整数计算问题,以9999999967为例,我们将从多个方面对其做详细阐述,并给出完整的代码示例。 一、大整数的表示方法 在计算机中,我们通常采用二进制数来…

    编程 2025-04-29
  • xkujs全能编程开发工程师

    本文将从以下几个方面详细阐述xkujs作为一名全能编程开发工程师的技术能力和实战经验,为初学者提供学习参考。 一、JavaScript基础 作为一名全能编程开发工程师,JavaSc…

    编程 2025-04-29
  • Spring Cloud Greenwich.Release:全能编程开发工程师的首选

    本文将从以下几个方面对Spring Cloud Greenwich.Release进行详细阐述,包括项目概述、核心组件、应用案例、配置和部署等,旨在为全能编程开发工程师提供更好的解…

    编程 2025-04-29
  • 全能编程开发工程师必备技能:Source Where 1=1

    如果你想成为一名全能的编程开发工程师,那么掌握SQL查询语言中的Source Where 1=1是非常必要的。 一、简介 Source Where 1=1是SQL语句的一种常见写法…

    编程 2025-04-29
  • 全能工程师必备技能:void oled_cls(void) { unsigned char y,x;的用法介绍

    在编程中,有一些常用的函数,如void oled_cls(void) { unsigned char y,x;},这个函数可以帮助开发者快速清空OLED屏幕上的数据。在下面的文章里…

    编程 2025-04-29

发表回复

登录后才能评论