特殊的shell变量

Linux——Shell脚本中自定义变量的应用(基础)2

除了用户自定定义的shell变量以外,还有一系列的特殊无双懒医的变量——环境变量、位置变量、预定义变量。

一、特殊的变量

1.环境变量

环境变量指的是出于运行需要而由linux系统提前创建的一类保剑峰变量,主要用于设置用户的工作环境,包括用户宿主目录、命令屈辱查找路径、用户当前目录、登录终端等。环境变量的值由linux白娅倩系统自动维护,会随着用户状态的改变而改变。

使用env命令可以查看到当前工作环境下的环境变量,对于常见的一些环境变量应了解其各自的用李秀琼途。例如,变量USER表示用户名称,HOME表示用户的宿主目录,LANG表示语言和字符集,PWD表示当前所在的工作目录,PATH表示命令搜索路径等。如下图:

PARH变量用于设置可执行程序的默认搜索路径,当仅指定文件名称来执行命令程攻城掠弟序时,linux系统将在PATH变量指定的目录范围查找对应的可执行文件,如果找不到则会提示"co具在熙mmand not found"。

例如:firsh.sh脚本位于/root目录下,若希望能直接通过文件名称来运行脚本,可以修改PATH变量以添加搜索路径,或者将first.sh脚本复制到现有搜索路径中的某个文件夹下。如下图:

在linux系统中,环境变量g1802的全局配置文芙蓉王妃花轿错嫁件为/etc/profile,在此文件中定义的变量作用于所有用户。除此之外,每个用户还有自己的独立配置文件(~/.bash_profil)。若要长期变更或设置某个环境变量,应在上述文件中进行设置。例如,执行以下操作可以将记录的历史命令条数改为2卖春00条(默认为1000条),只针对root用户。如下图:

上述修改只有当root用户下次登录时才会王加行生效。若希望立即生效,应手动修改环境变量,或者可以加载配鱼刺卡在喉咙怎么办,miracast,nb置文件执行。如下图:

2.位置变量

为了在使用shell脚本程序时,方便通过命令行为程序提供操作参数,bash引入了位置变量的概念。当执行命令操作时,第一个字段表迦梨之歌示命令名或脚本程序名,其余的字符串参数按照从左到右的顺序依次赋值给位置变量。

位置变量也称为位置参数,使用$1、$2、$3....$9表示。例如,当污故事执行命令行"ls -lh /boot/"时,其中第1个位置变量为"-lh",以"$1"表示;第2个位置变量为"/boot/",以"$2"表示。命令或脚本本身的名称使用"$0"表示,虽然$0与位置变量的格式相同,但是$0属于预定义变量而不是位置变量。

示例:下面是一个加法运算的小脚本sum.sh,用来计算两个整数的和。逗哈快猪需要计算的两个整数在执行脚本时以位置变量的形式提供。如下图:

3.预定义变量

预定义变量是由bash程序预先定义好的一类特殊变量,用户只能使用预定义变量,而不能创建新的预定义变量,也不能直接为预定义变量赋值。预定义变量使用"$"黑鸦监牢符号和另一个符号组合表示,较常用的几个预定义变量的含义如下:

  • $#:表示命令中位置参数的个数
  • $*:表示所有位置参数的内容同庆帝
  • $?:表示前一条命令执行后的返回状态,返回值为0表示执行正确,返回任何非0值均表示执行出现异常
  • $陈垣与启功0:表示当前执行的脚本或程序的新编训犬指南名称

示例:下面是一个备份操作的小脚本,用来打包命令行指定的多个文件或目录,并输入相关信息。其中,新建的压缩包文件名称中嵌入时间,通过"date +%F"命令来获取铸源优客。如下图: