shell编程之二(变量与引用)

变量

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不会被替换

声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/317.html

最后编辑于:2017/9/23作者: 辣条①号

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注