Linux 基础知识:Bash的内置变量

Bash默认建立了许多内置变量,以下介绍些这类变量。

1. BASH

用途:显示bash的完整路径名。通常是:/bin/bash或/usr/local/bin/bash。

用例:echo $BASH

2. BASH_VERSION

用途:bash的版本。

用例:echo $BASH

4执行结果:4.1.2(1)-release

3. FUNCNAME

用途:在函数式执行期,此变量内容即为函数式的名称。

用例:

function show_name() {

echo $FUNCNAME

echo “今个儿是$1,你$2大大,来自$3”

}

4执行结果:显示函数式名称show_name。

4. HISTCMD

用途:当前指令执行完后,它在历史指令中的排列编号(指定给下一个指令用的历史命令编号)。

用例:echo $HISTCMD

4执行结果:1051

5. HISTCONTROL

用途:控制指令是否存入历史脚本文件中。

用法:HISTCONTROL有3个可能的设定值:

ignorespace: 凡是指令开头有空格符的,不存入历史脚本文件中。

ignoredups: 连续重复的指令,只存一个。

ignoreboth: 结合前两者的功能。

6. HISTFILE

用途:设定历史脚本文件的路径文件名。通常是在: 家目录/.bash_history

用例:echo $HISTFILE

4执行结果:/root/.bash_history

7. HISTFILESIZE

用途:设定历史脚本文件存储指令的最大行数。

用例:echo $HISTFILESIZE

4执行结果:1000

8. HISTIGNORE

用途:不存入历史脚本文件的指令样式,以 : 隔开。

用例:echo HISTGNORE=ls:cd:type

9. HOME

用途:设定用户的家目录位置。通常,root的家目录在/root,一般用户的家目录在/home/账号。替换~的结果,就是HOME变量值。

10. HOSTNAME

用途:显示主机名。

用例:echo $HOSTNAME

4执行结果:www.contoso.com

11. HOSTTYPE

用途:显示主机形态。

用例:echo $HOSTTYPE

4执行结果:x86_64

12. IFS

用途:定义字段分隔字符。默认值为:空格符、tab字符、换行字符(newline)。

用例1

[[email protected] lab]# cat ifs1.sh  
#!/bin/bash    
#

CHK="t1 t2 t3 t4"

for i in $CHK; do  
   echo $i    
done

4执行结果:

t1  
t2    
t3    
t4

由于$IFS的内容之一是空格符,所以,可把$CHK拆成4个部分(称为字段),分别交由echo $i显示出来。

用例2

PL是密码文件/etc/passwd中的一行,现要把该行各字段分析出来。

#!/bin/bash  
#

PL="root:x:0:0:root:/root:/bin/bash"

# 重新定义IFS,要以‘:‘为分隔符

IFS=‘:‘

# j代表第几列

j=0

# 以循环分析各字段

for i in $PL; do  
   j=$((j+1))    
   echo 第$j 个字段是 $i    
done

4执行结果:

第1 个字段是 root  
第2 个字段是 x    
第3 个字段是 0    
第4 个字段是 0    
第5 个字段是 root    
第6 个字段是 /root    
第7 个字段是 /bin/bash

13. MACHTYPE

用途:描述主机形态的GNU格式:cpu-公司-系统。

用例:echo $MACHTYPE

4执行结果:

x86_64-redhat-linux-gnu

14. MAIL

用途:显示当前用户邮件目录。

用例:echo $MAIL

4执行结果:

/var/spool/mail/root

15. MAILCHECK

用途:每隔多久就检查一次邮件。通常默认是60秒。

用例:echo $MAILCHECK

4执行结果:60

16. PATH

用途:命令的搜寻路径。

用法:如果要自行添加搜寻路径,一般的做法如下:

export PATH=/lab/tmp:$PATH

这样可以在PATH增加路径/lab/tmp

17. PPID

用途:父进程的进程编号。

用例:echo $PPID

18. RANDOM

用途:随机函数。

此变量值,随机出现整数,范围为0-32767。不过,虽然说是随机,但并不是真正的随机,因为每次得到的随机数都一样。为此,在使用RANDOM变量前,请随意设定一个数字给RANDOM,当做随机数种子,这样才不会每次产生的随机数其顺序都一样。

用例:

RANDOM=$$   #使用bash shell的进程编号当做随机数种子

echo $RANDOM

19. REPLY

用途:select和read没有设定读取变量时,默认的变量名称为REPLY。

20. SHLVL

用途:子shell的层级数。

21. $1~$n

用途:位置参数。

传入程序或函数式的参数,第一个参数$1,第二参数$2,其他类推。

请注意,若位置参数n超过9以上,则要用${n}来表示。

$0代表执行程序的名称。

22. $*

用途:代表所有的位置参数,并且视为一个字符串。

如:test.sh ABC 123 xyz,则$*的内容为字符串“ABC 123 xyz”

23. [email protected]

用途:代表所有的位置参数,但[email protected]代表各位置参数组成的串行。

如:test.sh ABC 123 xyz,则[email protected]的内容为"ABC"、"123"、" xyz”这3个字符串。

24. $#

用途:位置参数的个数。

如:test.sh ABC 123 xyz,有3个参数,$#的值为3。

25. $?

用途:上一条命令执行结束后的传回值。通常0代表执行成功,非0代表执行有误。

26. $$

用途:目前bash shell的进程编号。

27. $_

用途:

a. script执行时,bash的绝对路径。

b. 上一个命令执行时,最后一个位置参数,如上一个命令是:test.sh ABC 123 xyz,则$_的值为’xyz’。

c. 检查邮件时,$_的值为邮件文件名。

时间: 2024-10-13 12:24:35

Linux 基础知识:Bash的内置变量的相关文章

Linux基础之bash脚本编程初级-变量

什么是变量? 变量最初来源于数学,指的是非固定的值可变化的数通常用拉丁字母表示.在计算机中变量它依旧指的是可变化的数,只不过表现形式有些变化.它指的是变量名+所指向的内存空间. 以下实验环境均在CentOS7.2进行 变量的特点 变量分强类型变量,与弱类型变量 强类型变量:变量需事先声明且需提前定义其变量存储格式 弱类型变量:不需事先声明,不需定义变量存储格式. bash把所有变量统统视作字符型:bash中的变量无需事先声明,相当于,把声明和赋值过程同时实现. 变量名的命名规范: 变量名只能包含

【Python】【基础知识】【内置常量】

Python的内置常量有: False.True.None.NotImplemented.Ellipsis.__debug__ 由 site 模块添加的常量:quit.exit.copyright.credits.license 内置常量¶ 有少数的常量存在于内置命名空间中. 它们是: False bool 类型的假值. 给 False 赋值是非法的并会引发 SyntaxError. True bool 类型的真值. 给 True 赋值是非法的并会引发 SyntaxError. None Non

【Python】【基础知识】【内置函数】【help的使用方法】

原英文帮助文档: help([object]) Invoke the built-in help system. (This function is intended for interactive use.) If no argument is given, the interactive help system starts on the interpreter console. If the argument is a string, then the string is looked u

#【Python】【基础知识】【内置对象常用方法】

数字的常用方法: >>> dir(int) ['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__get

Linux 基础知识 --> Bash

一.什么是shell? 1.shell:外壳 GUI:Gnome.KDE.Xface CLI:sh.csh.ksh.bash.tcsh.zsh 2.prompt,命令提示符 #:root用户 $:普通用户 3.子shell? 在shell中直接输出bash,即可进入其子shell,且父shell和子shell互不相 二.Bash特性 (1)命令行编辑 Ctrl+a:命令行光标跳到命令行首 Ctrl+e:命令行光标跳到命令行尾 Ctrl+u: 删除命令行光标至命令行首的内容 Ctrl+k: 删除命

【Python】【基础知识】【内置函数】【dir的使用方法】

原英文帮助文档: dir([object]) Without arguments, return the list of names in the current local scope. With an argument, attempt to return a list of valid attributes for that object. If the object has a method named __dir__(), this method will be called and

【Python】【基础知识】【内置函数】【int的使用方法】

原英文帮助文档: class int([x])class int(x, base=10) Return an integer object constructed from a number or string x, or return 0 if no arguments are given. If x defines __int__(), int(x) returns x.__int__(). If x defines __trunc__(), it returns x.__trunc__()

17、内置变量、特殊变量、字符操作、声明变量 学习笔记

1.bash的内置变量 $PATH            环境变量路径 $HOSTNAME        系统主机名 $UID             系统当前用户ID $HISTFILE        历史文件存放路径 $HISTSIZE        系统可以保存的历史记录条目数 $HISTFILESIZE    历史文件可以保存的历史记录条目数 $HISTCONTROL     历史命令显示控制 $BASH            bash二进制程序文件的路径 $BASH_SUBSHELL 

shell--特殊位置参数变量及常用内置变量

1.shell中的特殊位置参数变量 $0:获取当前执行的shell脚本的文件名,如果执行脚本包含了路径,那么就包括脚本路径 $n:获取当前执行的shell脚本的第n个参数,n=1..9,当n为0时表示脚本的文件名:如果n大于9,则用大括号括起来 比如${10},接的参数以空格隔开 $#:获取当前执行的shell脚本后面接的参数的总个数 $*:获取当前shell脚本所有传参的参数,不加引号和[email protected]相同:如果给$*加上双引号,如"$*",则表示把所有的参数视 为