shell变量 (环境变量、预定义变量、位置变量、用户自定义变量)
一、环境变量 (可以较好的了解到用户当前状态信息)
1、查看环境变量
#set | head -3 (查看多个环境变量)
#echo $PATH ( 查询某个环境变量)
2、常用环境变量
#echo $USER ( 当前用户的登陆名称)
#echo $UID ( 当前用户的用户号)
#echo $SHELL ( 当前用户登陆的shell)
#echo $HOME (当前登陆用户的主目录)
#echo $PWD (用户当前所在目录)
#echo $PATH (当前用户的命令搜索路径)
#echo $PS1 (当前用户的主提示符)
#echo $PS2 (当前用户的辅助提示符)
3、环境变量配置文件 (分全局配置文件、用户配置文件)
环境变量全局配置文件:
/etc/profile ( 负责设置全局环境,并应用与所有的用户登陆shell)
/etc/bashrc ( 定义全局的函数和别名,除为系统中所有登陆用户提供
设置外,也使用与非交互shell和非登陆shell)
用户环境变量配置文件:
/home/sto1/.bash_profile (存在于用户的主目录内,作用于当前用户)
/home/sto1/.bash_bashrc (存在于用户的主目录内,作用于当前用户)
-------------------------------------------------------------
二、位置变量 (与shell脚本程序执行时所使用的命令参数相对应,命令行中的参数按照从左到右的顺序给位置变量赋值)
$0 预定义变量
$n n=1~9之间的一个数
引号的作用:
单引号('……') 对引号中的字符串不进行任何变量替换,保持字符串的原始值;
双引号("……")对引号中的变量会以变量的值来替换,并作为字符串的一部分;
反引号(`……`) 用于进行命令替换,引号中命令执行的结果将替换命令本身作为字符串
----------------------------------------------------------
三、预定义变量 (是系统中已定义好的变量,用户只能使用不能改变或创建)
$# 表示参数的数量
$* 表示所有位置参数的内容
$? 表示上一个命令执行后退出时的状态,为0表示正确执行,非0执行错误
$$ 表示当前进程的进程号
$0 表示当前执行的进程名
$! 表示后台运行的最后一个进程号
------------------------------------------------------------
四、用户自定义变量 (又称本地变量,用户自己定义的变量,在用户自己的shell中有效)
1、自定义变量的设置
# DAY=sunday
2、自定义变量的查看与引用
# echo $DAY
3、自定义变量的输出 (输出变量到全局变量,在所有用户的子shell中使用)
# export DAY
4、自定义变量的清除
# unset DAY
------------------------------------------------------------------------
五、shell脚本
1、创建shell脚本:
# vi hello.sh (文件名用后缀.sh结尾,用来表明这是个shell脚本)
2、shell脚本的首行(固定格式):
#!/bin/shell
3、注释行以#开头:
# This is my first shell program.
4、脚本运行:
# chmod u+x hello.sh (给脚本添加可执行属性)
# bash hello.sh (使用shell命令程序执行脚本,需要设置可执行属性)
# ./hello.sh (执行当前目录下的hello.sh,需要设置可执行属性)
# /home/user1/hello.sh (需要设置可执行属性)
# . hello.sh (用 . 命令执行,通常在脚本文件中调用其他脚本文件时使用,不需要hello.sh有可执行属性)
一、环境变量 (可以较好的了解到用户当前状态信息)
1、查看环境变量
#set | head -3 (查看多个环境变量)
#echo $PATH ( 查询某个环境变量)
2、常用环境变量
#echo $USER ( 当前用户的登陆名称)
#echo $UID ( 当前用户的用户号)
#echo $SHELL ( 当前用户登陆的shell)
#echo $HOME (当前登陆用户的主目录)
#echo $PWD (用户当前所在目录)
#echo $PATH (当前用户的命令搜索路径)
#echo $PS1 (当前用户的主提示符)
#echo $PS2 (当前用户的辅助提示符)
3、环境变量配置文件 (分全局配置文件、用户配置文件)
环境变量全局配置文件:
/etc/profile ( 负责设置全局环境,并应用与所有的用户登陆shell)
/etc/bashrc ( 定义全局的函数和别名,除为系统中所有登陆用户提供
设置外,也使用与非交互shell和非登陆shell)
用户环境变量配置文件:
/home/sto1/.bash_profile (存在于用户的主目录内,作用于当前用户)
/home/sto1/.bash_bashrc (存在于用户的主目录内,作用于当前用户)
-------------------------------------------------------------
二、位置变量 (与shell脚本程序执行时所使用的命令参数相对应,命令行中的参数按照从左到右的顺序给位置变量赋值)
$0 预定义变量
$n n=1~9之间的一个数
引号的作用:
单引号('……') 对引号中的字符串不进行任何变量替换,保持字符串的原始值;
双引号("……")对引号中的变量会以变量的值来替换,并作为字符串的一部分;
反引号(`……`) 用于进行命令替换,引号中命令执行的结果将替换命令本身作为字符串
----------------------------------------------------------
三、预定义变量 (是系统中已定义好的变量,用户只能使用不能改变或创建)
$# 表示参数的数量
$* 表示所有位置参数的内容
$? 表示上一个命令执行后退出时的状态,为0表示正确执行,非0执行错误
$$ 表示当前进程的进程号
$0 表示当前执行的进程名
$! 表示后台运行的最后一个进程号
------------------------------------------------------------
四、用户自定义变量 (又称本地变量,用户自己定义的变量,在用户自己的shell中有效)
1、自定义变量的设置
# DAY=sunday
2、自定义变量的查看与引用
# echo $DAY
3、自定义变量的输出 (输出变量到全局变量,在所有用户的子shell中使用)
# export DAY
4、自定义变量的清除
# unset DAY
------------------------------------------------------------------------
五、shell脚本
1、创建shell脚本:
# vi hello.sh (文件名用后缀.sh结尾,用来表明这是个shell脚本)
2、shell脚本的首行(固定格式):
#!/bin/shell
3、注释行以#开头:
# This is my first shell program.
4、脚本运行:
# chmod u+x hello.sh (给脚本添加可执行属性)
# bash hello.sh (使用shell命令程序执行脚本,需要设置可执行属性)
# ./hello.sh (执行当前目录下的hello.sh,需要设置可执行属性)
# /home/user1/hello.sh (需要设置可执行属性)
# . hello.sh (用 . 命令执行,通常在脚本文件中调用其他脚本文件时使用,不需要hello.sh有可执行属性)
转载于:https://blog.51cto.com/liwenhui/95330