变量
在shell
中用户可以建立变量来存储数据,但不支持数据类型,变量名命名规则:数字、字母、下划线,不能以数字开头。
环境变量
当前shell的环境设置的一些变量
export
—设置新的环境变量
env
—显示所有环境变量
set
—显示所有本地的shell变量
unset
—清除环境变量**(高危)**
常见的环境变量:
PWD=/home/ghost-linux/shell
— 当前路径(绝对路径)
HOME=/home/ghost-linux
— 家目录
USERNAME=ghost-linux
—用户名
创建一个新的环境变量:
- 在文件中添加
- 在
/etc/profile
文件中,使用export
创建环境变量 - 执行
source /etc/profile
使环境变量生效
- 在
用户自定义变量
1、在shell编程中通常使用全大写变量,方便识别
2、变量的使用:在变量前加$
3、Linux Shell/bash从右向左赋值
4、使用unset命令删除变量的赋值 unset 变量名
COUNT=1
注意:
1、无数据类型,默认为字符串
2、“=”两边没有空格
位置变量 即 命令行参数
-
$0
:与键入的命令行一样,包含脚本文件名 -
$1,...$9
:分别包含第一个到第九个命令行参数 -
$#
:包含命令行参数的个数 -
$@ / $*
:包含所有命令行参数 ——>“$1....$9
”,区别在于$*
返回的是一个字符串整体,$@
是以空格分开的字符串集 -
$?
:包含前一个命令的退出状态 -
$$
:包含正在执行进程的ID号
#! /bin/bash
echo this is '$0' = $0
echo '$1' = $1
echo '$2' = $2
echo '$#' = $#
echo '$@' = $@
echo '$*' = $*
echo '$$' = $$
echo '$?' = $?
预定义变量
预定义变量和环境变量相类似,也是在shell一开始时就定义了的变量,所不同的是,用户只能根据shell的定义来使用这些变量,而不能重定义它。所有预定义变量都是由$
符和另一个符号组成
$?
:打印前一个命令的退出状态$$
:打印正在执行进程的ID号$!
:后台运行的最后一个进程的进程号(PID)