欢迎光临散文网 会员登陆 & 注册

Shell编程系列-变量是什么?

2023-07-07 15:21 作者:运维朱工  | 我要投稿

变量是什么?

在shell中,变量是用来存储数据的容器。它们可以存储各种类型的数据,如字符串、数字、数组等。变量起到了存储和引用数据的作用,使得我们可以在脚本中使用这些数据。

通俗来讲,变量是为了提高代码的可读性和可维护性,将需要多次用到的数据赋值给一个变量,可以简化操作

在shell中,我们可以使用赋值操作符=来定义变量,并使用$符号来引用变量的值。

例如,定义一个名为name的变量并赋值为"lutixia",可以使用以下命令:name="lutixia" ,其中值的双引号不是必须的,除非有特殊字符。

然后,我们可以在脚本中使用$name来引用这个变量的值。例如,可以使用以下命令打印出变量的值:echo $name输出将是lutixia

变量的类型

环境变量

环境变量是一种特殊的变量,用于存储系统级别的配置和信息,如路径、用户配置、语言设置等。它们是由操作系统或用户设置的,对于所有运行在该环境下的进程都是可见的,可以在不同的脚本和程序之间共享和传递数据。

在shell中,可以使用env命令printenvset命令来查看当前环境中定义的所有环境变量。


常见的环境变量

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使用,后面会介绍到。

未完待续。。。

Shell编程系列-变量是什么?的评论 (共 条)

分享到微博请遵守国家法律