shell反引号 单双引号 设置变量 特殊变量 回显说明

2015-04-25 16:23:00
admin
原创 2977
摘要:shell反引号 单双引号 设置变量 特殊变量 回显说明

一、反引号

反引号和$()起着命令替换的作用,把命令的标准输出插在命令行的任何位置,注意会去除末尾换行符。

echo `date "+%Y-%m-%d %H:%M:%S"`

echo $(date "+%Y-%m-%d %H:%M:%S")


二、单双引号

1、单引号告诉shell忽略所有特殊字符,单引号变量传递给变量或者命令时带单引号

2、双引号忽略多数特殊字符,不包括$ 和`,表示$ 和`需要进行转义,双引号变量只是传递给变量时带双引号;

3、单引号支持定义C语言转义字符串,$属性具备传递性,v1和v2都有$属性;

     v1=$'a\nb' && v2="\n$v1" && set

     v1=$'a\nb'

     v2=$'\\na\nb'


三、windows批处理反引号、单引号、双引号

反引号:没有反引号功能

单引号:不忽略%%变量解释

双引号:不忽略%%变量解释


四、设置变量(派生shell会导入现有shell的环境变量)

设置变量:key=value或key=$var,value不能有空格,$var变量可以有空格,set命令查看设置结果

设置变量到命令输出:key=`cmd`,命令输出可以有空格,C式转义字符串根据内容自动设置;

设置动态变量:eval base$num=value,eval作用是先计算字符串,然后将字符串放到shell执行;

脚本导出变量:export key=value,需要使用source命令,只需导出一次,env命令查看设置结果;

清除变量:unset key,清除环境变量或普通变量,变量只能是环境变量或普通变量;

windows脚本设置变量:set key=value;


五、特殊变量

$0,脚本名

$1 - $9,位置参数
${10},位置参数
$#,位置参数的个数

$*,所有参数组成的字符串

$@,与$*含义相同,但每个参数做为一个独立的字符串,$*=$@,"$*"!="$@",后者在for循环时有差别;

$?,返回值

$$,脚本的进程PID
$!,运行在后台的最后一个作业的进程PID

$PATH,命令查找路径

$HOME,用户HOME目录,shell和crontab都可以拿到;


说明:shift命令用于修改位置参数队列以及位置参数个数。


六、回显说明

linux默认关闭回显;

windows默认开启回显,单条指令避免回显使用@,所有指令避免回显echo off;

发表评论
评论通过审核之后才会显示。