显示本地变量
echo $变量名或echo $(变量名)
eg num=2 echo “this is $numnd”
num=2
echo “this is ${num}nd”
eg2 要将name的内容多出“Yes”,
两种方法 : #name= “$name”yes
#name= “${name}”yes
Eg3 在子shell下变量的作用范围
bash后相当于在子shell里面运行
在子shell中运行。exit退出子shell,进入副shell运行
Eg4 释放本地变量unset 格式:unset 变量名
环境脚本在shell运行时就已经定义了 环境变量也是系统变量 环境变量可以用于所有用户进程
进入已经定义好的环境变量
#PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录
Linux修改PATH变量
只想对本次登录有效的话
PATH=$PATH<路径1><路径2>…….
永久有效在bashrc里面加上上面这句话
用export可以把本地变量设置成环境变量
格式:export 变量名
也可以在给变量赋值的同时使用export命令
格式:export 变量名=变量值(若等号两边加空格,则必须用引号括起来)
(设置成环境变量,环境变量可以用于所有用户进程)
(删除自己设定的环境变量)
特殊变量
某些变量在开始执行脚本是就被设定且不再改变,他们就被称为特殊变量
用户只能根据shell使用这些变量而不能重新定义它们,所有特殊变量都是$和另一个符号组成
$#:存储shell程序命令行参数的个数
$?:存储shell中上一个程序执行的返回值(0表示执行成功。非0错误)
$[1-n]:存储[1-n]个命令行参数
$0:存储shell程序的自己名称
$*:存储shell脚本的所有参数(不包含$0)
$$:存储shell脚本的进程号(pid)
练习
设计脚本***(名字)要求如下 当输入bash ./***任意年份 回车现实2012年头三个月的月历
shift命令
可以移动命令行参数,运行shift后,把每个参数向左移动一个位置。$2 $3 ……依次变为$1 $2 …….,原先的$1丢掉
特殊符号
引用符号
在bash中,许多字符有特殊含义。如果希望忽略某些字符含义可以使用一种“引用”通知shell暂时忽略被引用字符的特殊含义,将其作为普通字符处理
~:用户组目录
、:(不会被双引号剥夺含义)命令替换符,跟引用作用相反,反引号内的字符被shell解释命令符,在执行shell时,首先执行该命令,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。
#:注释
$:变量替换的代表符号
&:将命令在后台执行
*:通配符
(:子shell开始
):子shell结束
:转义字符
|:管道
?:代表任何单一字符
<:输入重定向
>:输入重定向
‘:(单引号)不具有变量置换功能
“:(双引号)具有变量置换功能
/:目录路径
;:命令分隔符
在shell中的三种引用符号
转义符:
单引号:‘
双引号:”
\放在shell特殊符号之前,则shell忽略该字符的特殊含义
用这种方式时,必须在每一个欲忽略其特殊含义的特殊字符前加\字符
单引号:‘ 将字符放在一队单引号之间,则单引号内所有字符的特殊含义都被忽略,只作为普通符号解释
的作用跟引用字符的作用相反
反引号括起来的字符被shell解释为命令行,在执行shell时,首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分
(不取消pwd特殊含义)