单引号和双引号的用法基本类似,不同的是单引号对特殊字符不敏感,可以将其做为普通字符输出出来
例:
该命令用于设置系统命令的输出到变量,shell将反引号中的内容做为命令执行。
例1:
例2:
$ echo `date` 2021年 1月17日 星期日 23时40分18秒 CST反引号可以和双引号结合起来使用:
例3:
如果一个字符有特殊含义,为防止shell误解其含义,可用\屏蔽该字符
具有特殊含义的字符
------------------------------------------------------------------------------------
& *
^
$
`
“
|
------------------------------------------------------------------------------------
例1 :
例2:
$ echo * //在屏幕上输出*字符,结果输出当前目录下内容 $ echo \* //用反斜线屏蔽,防止shell误解,输出*字符 2.4 Shell变量,参数 2.4.1 系统变量系统变量适用于所有用户进程,可以在命令行中设置,但用户注销时这些值将丢失,最好在.profile中进行定义,或者/etc/profile
传统上,所有环境变量都大写,且必须用export命令导出
设置环境变量:
或者:
var_name=value export var_name又或者
export var_name=value查看环境变量:
echo $var_nameenv 该命令可查看所有系统环境变量
unset var_name 清除系统环境变量
嵌入shell变量
一般来讲,bourne shell有一些预留的环境变量名,这些变量名不能做其他用途,通常在/etc/profile中建立这些嵌入的环境变量,但这不绝对,取决于用户
shell的变量列表:
CDPATH; EXINIT; HOME; IFS; LOGNAME; MAIL;MAILCHECK; PATH; PS1; PS2; SHELL; TERMINFO;TERM; TZ
在用户shell生命周期的脚本中使用,不同的用户可以定义各自的用户变量 ~/.bashrc
用法:
显示变量:
echo $var_name or echo ${var_name} //建议使用清除变量:
unset var_name显示用户所有变量:set
测试变量是否设置:echo ${var:=value} 若未设置或未初始化,可用新值
使用变量保存系统命令参数
例:
设置只读变量
可设置某个变量为只读方式,只读变量不可更改,否则系统返回错误
用法:
例:
$ myvar="100" $ readonly myvar $ myvar="200" $ -bash: myvar: readonly variable 2.4.3 位置变量位置变量属于只读变量
作用:向shell脚本传递参数,参数个数可以任意多,但只有前9个被访问到,shift命令可以更改这个限制。
每个访问参数前加$,
第一个参数为0,表示预留保存实际脚本名字,无论脚本是否有参数,此值均可用,如:给脚本test传递信息:
Would you like to do it
脚本名字 would you like to do it
例:$ vi test
#!/bin/sh echo "The full name is : $0 " echo "The script name is : `basename $0`" echo "The first parameter is :$1" echo "The second parameter is :$2" echo "The third parameter is :$3" echo "The fourth parameter is :$4" echo "The fifth parameter is :$5" echo "The sixth parameter is :$6" echo "The seventh parameter is :$7" echo "The eighth parameter is :$8" echo "The ninth parameter is :$9"保存文件,执行 $ ./test would you like to do it
The full name is : ./test The script name is : test The first parameter is :would The second parameter is :you The third parameter is :like The fourth parameter is :to The fifth parameter is :do The sixth parameter is :it The seventh parameter is : The eighth parameter is : The ninth parameter is :