Shell编程系列-变量是什么?
在shell中,变量是用来存储数据的容器。它们可以存储各种类型的数据,如字符串、数字、数组等。变量起到了存储和引用数据的作用,使得我们可以在脚本中使用这些数据。
通俗来讲,变量是为了提高代码的可读性和可维护性,将需要多次用到的数据赋值给一个变量,可以简化操作。
在shell中,我们可以使用赋值操作符=
来定义变量,并使用$
符号来引用变量的值。
例如,定义一个名为name的变量并赋值为"lutixia",可以使用以下命令:name="lutixia"
,其中值的双引号不是必须的,除非有特殊字符。
然后,我们可以在脚本中使用$name来引用这个变量的值。例如,可以使用以下命令打印出变量的值:echo $name
输出将是lutixia
。
变量的类型
环境变量
环境变量是一种特殊的变量,用于存储系统级别的配置和信息,如路径、用户配置、语言设置等。它们是由操作系统或用户设置的,对于所有运行在该环境下的进程都是可见的,可以在不同的脚本和程序之间共享和传递数据。
在shell中,可以使用env
命令printenv
或set
命令来查看当前环境中定义的所有环境变量。
常见的环境变量
HISTCONTROL:用于控制历史命令记录的变量。其中值有ignorespace,ignoredups,ignoreboth,默认情况下,HISTCONTROL变量设置为ignoredups。
ignorespace:如果命令行以空格开头,该命令将不会被保存到历史记录中。
ignoredups:如果新的命令与历史记录中的前一个命令相同,那么该命令将不会被保存到历史记录中。
ignoreboth:同时忽略以空格开头的命令和重复的命令。
PATH:用于保存命令路径的变量。
[root@bash.lutixia.cn ~]# echo $PATH
/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
HISTSIZE:用于设置历史命令数量的变量,默值是 1000。
PS1:用于定制命令提示符的变量。
用户变量(自定义变量)
用户变量是用户自定义的变量,用于存储数据和执行脚本。变量的命名通常以字母或下划线开头,后面可以跟着字母、数字或下划线。在变量、等号和值之间不能出现空格。
位置变量
变量(Positional Variables)是指在执行脚本或命令时,传递给脚本或命令的参数。位置变量以数字表示,从1开始递增,表示参数的位置顺序。例如,$1表示第一个参数,$2表示第二个参数,以此类推。bash 定义了 9 个位置变量,如果需要更多,也同样支持,比如${10},但是更多的位置变量不便理解,可以结合shift
使用,后面会介绍到。
未完待续。。。