文章目录
变量
shell变量的赋值(两种方式)
variable=value
$(variable=value)
变量赋值 注意点:
1:等号=两边可以有空格,这不影响赋值
2:如果值value包含空格,需要用""引起来
3:变量名variable不能以数字开头,并且职能包含大小写,下划线,和数字
利用unset清除变量的值
unset 变量名
用readonly将变量设为只读模式
tianyu=123
readonly tianyu
查看系统中所有的只读变量
readonly
如何定义一个环境变量
先定义一个变量,然后用export声明一下(这个定义的变量名,建议大写)
APPAT=/usr/sbin
export APPAT
查看系统中所有的环境变量
env
如何清除环境变量(与清除其他变量相同)
unset APPAT
PATH是非常重要的环境变量(存放可执行文件的路径)
echo $PATH
如要在PATH中添加新目录
export PATH="new directory":$PATH
HOME变量记录了用户的家目录,由/etc/passwd的倒数第二个域决定
SHELL变量,记录了当前系统默认的shell
USER和UID两个变量记录当前已登录的用户名和id号
echo $USER $UID
PPID记录了创建当前进程的进程号,即当前进程的父进程号
PS1和PS2,称为提示符变量,用于设置提示符格式
wsfnk@ThinkPad-E540:~$ echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
wsfnk@ThinkPad-E540:~$ echo $PS2
>
其中提示符变量中特殊符号及其意义
\d 以"周 月 日"格式显示日期
\H 主机名和域名
\h 主机名
\s shell的类型名称
\T 以12小时制显示时间,HH:MM:SS
\t 以24小时制显示时间,HH:MM:SS
\@ 以12小时制显示时间,am/pm
\u 当前的用户名
\v bash shell的版本号
\V bash shell的版本号和补丁号
\w 当前工作目录的完整路径
\W 当前工作目录的名字
\# 当前命令的序列号
\$ 如果UID为0,则打印#,否在打印$
PS2是用于设置二级shell提示符的环境变量(当命令没有输入完整时显示,默认是>)
环境变量的配置文件(linux的环境变量较多,管理员可以通过环境变量配置文件来进行管理)
下面三个文件都存在与用户的家目录下,是以.开头的隐藏文件
.bash_profile(最重要,有的linux版本名字是.profile)
.bashrc
.bash_logout
当修改环境变量的配置文件后,需要注销后再次登录才能生效,当然可以使用下面的命令刷新,立即生效
source .bash_profile
或则
. .bash_profile
位置参数(shell变量中特殊的变量)
$0 $1 $2 $3 ${10} ${12} $*
$1,表示第一个参数,$2,表示第二个参数
$0,表示脚本的名字
${12},表示第12个参数,只是从10开始,都有使用{}括起来
$*和$@一样,表示从$1开始的所有参数
$#,表示传递到脚本的参数数量
$$,脚本运行的进程号
变量的引用
变量的引用
"" 引用除$,`,\三种符号之外的所有字符
'' 引用所有的字符
`` shell将反引号中的内容解释为命令
\ 转移符,屏蔽下一个字符的特殊意义
echo "$PWD is ok" #使用""这里的$PWD将被替换
echo '$PWD is ok' #使用''这里的$PWD不会被替换
Shell双重变量引用
#!/bin/bash
#从标准输入给变量A传递一个参数
read -p "请输A端节点:" A
#定义一个变量Node,为其赋值为192.168.1.1
Node=192.168.1.1
Z=${A}_PPL
现在需要在一行调用变量Z
eval echo "ip addr add "$"$A"_Dn42_ip/32" peer ${ZIPDN42}/32 dev ${Z}_$ZASN
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论