本地变量
1.显示本地变量
echo
变
量
名
或
e
c
h
o
变量名或echo
变量名或echo(变量名)
例子:#num=2
#echo“this is $numnd”
#num=2
#echo"this is ${num}nd"
例子:
要将name的内容多出“yes”,两种方法
#name=“KaTeX parse error: Expected 'EOF', got '#' at position 10: name”yes #̲name={name}yes
例子:
在子shell下#aa=1
#bash (子shell)
#echo $aa
无输出
#aa=23
#echo $aa
#23
#exit
输出exit
#echo $aa
输出1变量的作用范围
example
释放本地变量unset
格式:unset 变量名
环境变量
环境变量在执行的时候就已经定义了 环境变量也称为系统变量 可以用于所有用户进程
PS1:主题示符,在特权用户下,默认的主提示符是#;在普通用户下,默认的主提示符是$
PS1变量的特殊符号
PS1=’[\u@\h\w]$’
\u:当前用户的账户名称
\h:仅取主机名的第一个字
\w:工作目录名称,仅列出最后一个目录
$:提示符,如果是root用户就是#否则就是$
#PATH:
(1)决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录
(2)Linux修改PATH变量
> 只想对本次登陆有效的话
PATH=$PATH<路径1><路径2>…
永久有效在bashrc里面加上上面这句话
> \env 查看环境变量
export
用export可以把本地变量设置为环境变量
格式:export变量名
也可以在给变量赋值的同时使用export命令,
export 变量名=变量值(若等号两边有空格,则必须用引号括起来)
**
特殊变量
**
某些变量在一开始执行脚本时就被设定且不再改变,他们就被称为特殊变量
用户只能根据shell使用这些变量而不能重新定义他们,所有特殊变量都是由$和另一个符号组成
$# 存储shell程序中命令行参数的个数
$?:存储shell中上一个程序执行的返回值(0表示执行成功,非0错误)
$[1-n]:存储[1-n]个命令行参数
$0:存储shell程序自己的名称
$:存储shell脚本的所有参数(不包括$0)
$KaTeX parse error: Expected 'EOF', got '#' at position 232: …lor_FFFFFF,t_70#̲pic_center) ![运… 2 $ 3 …依次变为$ 1 $ 2…原来的$ 1丢弃
特殊符号
1引用符号***
在bash中,许多字符有特殊含义如果希望忽略某些字符含义可以使用一种“引用”通知shell暂时忽略被引用字符的特殊含义,将其作为普通字符处理
~:
`: (不会被双引号剥夺特殊含义)
#:注释
$:
&:
*:通配符
(:子shell开始
):子shell结束
\:
|:
?:代表单一字符
<:输入重定向
#>:输出重定向
’:单引号 不具有变量置换功能
“:双引号 具有变量置换的功能
/:路径
;:命令分隔符
2在shell中的三种引用符号
转义符:
单引号:‘
双引号:"
转义符:
\放在shell特殊字符之前,则shell忽略该字符的特殊含义
用这种方式时,必须在每一个欲忽略其特殊含义的特殊字符前加\字符
单引号:’
将字符放在一堆单引号之间,则单引号内的所有字符的特殊含义都被忽略,只作为普通字符解释
命令替换符“‘”
命令替换符“’”(反引号)的作用跟引用字符的作用相反
反引号括起来的字符被shell解释为命令行,在执行shell时,首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号) 部分