CASE20210510 - Linux shell脚本基础详解

1.变量

shell中特殊变量:

序号 变量 含义
1 $0 当前脚本的文件名
2 $n 传递给脚本或函数的参数。n是一个数字,表示第几个参数
3 $# 传递给脚本或函数的参数个数
4 $* 传递给脚本或函数的所有参数
5 $@ 传递给脚本或函数的所有参数,被双引号包含时,与$*稍有不同
6 $? 上个命令的退出状态,或函数的返回值
7 $- 显示shell使用的当前选项
8 $$ 当前shell进程ID,对于shell脚本,就是这些脚本所在的进程ID
9 $! 后台运行的最后一个进程的ID号

Linux环境变量:
查看变量命令:

env     #显示所有环境变量
export  #显示所有环境变量,同env数量相当
set     #显示所有本地定义的shell变量,数量比env,export显示的多

操作变量:

unset varvalue    #清除环境变量
set var=value     #设置环境变量
export var=value  #增加环境变量
readonly varvalue #设置变量为只读

环境变量设置与/etc/profile文件中,如需增加,添加行export path=$path:/path1:/path2:/pathn
linux 变量种类:

  • 永久的:需要修改配置文件,变量永久生效
  • 临时的:使用export命令声明,变量在关闭shell时失效

设置变量的三种方法:

  1. 在/etc/profile文件中添加变量
  2. 在用户目录.bash_profile文件中增加变量(只对当前用户有效)
  3. 直接运行export命令定义变量(只对当前shell有效)

常用的环境变量:

BASH                #bash shell的全路径
BASH_VERSION        #bash shell的版本号
CONFIG_PROTECT      #包含一系列用空格隔开的目录,更新时候会被portage保护
CONFIG_PROTECT_MASK #包含一系列空格隔开的目录,在更新时候不会被portage保护
EDITOR              #包含修改文件内容的程序的路径,如nano、vi
EUID                #记录当前用户的UID,如root用户值为0
FUNCNAME            #在用户函数体内部,记录当前函数体的函数名
HOME                #当前用户主目录
HISTCMD             #记录下一条命令在history命令中的编号
HISTFILE            #记录history命令记录文件的位置
HISTFILESIZE        #设置HISTFILESIZE文件记录命令的行数
HOSTNAME            #显示主机名
HISTSIZE            #命令缓冲区大小
HOSTTYPE            #显示主机架构,如i386,i686,x86,x64
KDEDIRS             #包含一系列用冒号隔开的目录,里面是KDE相关资料
IFODIR              #包含一系列冒号隔开的目录,命令info将在这些目录里搜索info页面
LOGNAME             #当前用户的登录名
LANG                #用来设置当前系统语言环境
LANGUGE             #语言相关的环境变量,多语言可以修改此环境变量
MAIL                #当前用户的邮件存放目录
MANPATH             #包含一系列冒号隔开的目录,命令man会在这些目录里搜索man页面
MACHTYPE            #显示主机类型的GNU标识,如主机架构-公司-系统-GNU
OLDPWD              #记录之前的目录
PAGER               #包含浏览文件内容的程序路径,如less/more
PS1                 #基本提示符,对于root用户是#,对于普通用户是$
PATH                #命令的搜索路径
PWD                 #记录当前目录
SHELL               #当前用户shell类型

CASE20210510 - Linux shell脚本基础详解

上一篇:ubuntu 16.04 install openssl-1.1.1


下一篇:进程和计划任务管理