2021.3.18学习笔记

显示本地变量
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下变量的作用范围
#aa=11
#bash (bash开启一个子shell)
#echo $aa (输出aa,输出不了,子shell里没有)
#aa=22
#echo $aa
#22
#exit (退出子shell)
#echo $aa
#11

eg4
释放本地变量nuset
格式 :unset 变量名

\env 查看环境变量
环境变量在shell脚本开始执行的时候就定义了
环境变量也称为系统变量,它与本地变量的差别时可以用于所有用户进程

PS1:主提示符,在特权用户下,默认的主提示符是#;在普通用户下,默认的主提示符是$
PS1变量特殊符号
PS1=‘[\n@\h\w]\$’
\n:当前用户的账号名称
\h:仅取主机名的第一个名字
\w:工作目录名称,仅列出最后一个目录名
\$:提示符,如果是root用户就是#否则就是$
#PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录
Linux修改了PATH变量
只想对本次登录有效的话
PATH=$PATH<路劲1>,<路劲2>…
永久有效在bashrc里面加上上面这句话
6、export
用export可以把本地变量设置为环境变量
格式: export 变量名
也可以在给变量赋值的同时使用export命令,
export 变量名=变量值(若等号两边有空格,则必须要用引号括起来)
特殊变量
某些变量在一开始执行脚本时就被设定且不再改变,他们就被称为特殊变量
用户只能根据shell使用这些变量而不能重新定义它们,所有特殊变量都是由$和另一个符号组成
$#:存储shell程序中命令行参数的个数
$?:存储shell中上一个程序的返回值(0表示执行成功,非0错误)
$[1-n]:存储地[1-n]个命令行参数
$*:存储shell脚本的所有参数(不包含$0)
$$:存储shell脚本的进程号(pid)
练习
设计脚本 ***要求如下
当输入bash ./***2012 回车显示2012年头三个月的月历
在这里插入图片描述
在这里插入图片描述
shift命令
可以移动命令行参数。运行shift后,把每个参数向左移动一个位置,$2 $3…依次变为 $1 $2 …, 原来的 $1丢掉
引用符号
在bash中,许多字符有特殊含义如果希望忽略某些字符含义可以使用一种“引用”通知shell暂时忽略被引用字符的特殊含义,将其作为普通字符处理
~:用户主目录
`:(不会被双引号剥夺含义)命令替换符,跟引用作用相反,反引号内的字符被shell解释命令符,在执行shell时,首先执行该命令,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。
#:注释
$:变量替换的代表符号
&:将命令在后台执行
*:通配符(可以代表任何字符)
(:开始子shell
):结束子shell
:转义符(不会被""剥夺含义)
|:管道
?:通配符(代表任何单一字符)
[>:](ps:没有中括号) 输出重对象
<:输入重对象
':(单引号) 不具有变量置换的功能
“:(双引号)具有变量置换的功能
/:路径
;:页面分隔符

在shell中的三种引用符号
转义符:
单引号:’
双引号:"
1、转义符:\

\放在shell特殊字符之前,则shell忽略该字符的特殊含义
用这种方式时,必须在每一个欲忽略其特殊含义的特殊字符前加\字符

2、单引号:‘

将字符放在一队单引号之间,则单引号内的所有字符的特殊含义都被忽略,只作为普通字符解释

3、双引号:”

双引号用括住的内容,将被视为单一字串。为防止通配符扩展,但允许变量扩展。

命令替换符 “ `”(反引号)的作用跟引用字符的作用相反
反引号括起来的字符被shell解释为命令行,在执行shell时,首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值