【tips】linux中单双引号,单双括号与反引号的区别

单引号、双引号、反引号 的区别

1、单引号 与 双引号

# 双引号不输出带特殊字符的字符,单引号输出全部
echo "my $like is apple"
my  is apple

echo 'my $like is apple' 
my $like is apple

2、引号 与 不带引号

# 不带引号会认为空格后的字符是shell命令
[service@NDL-BASS-YS-VM-129-152 wy]$ str=my $like is apple
-bash: is: command not found
[service@NDL-BASS-YS-VM-129-152 wy]$ str='my $like is apple'
[service@NDL-BASS-YS-VM-129-152 wy]$ echo $str
my $like is apple

3、反引号

# 反引号有 命令替换的作用
[service@NDL-BASS-YS-VM-129-152 wy]$ echo today is date
today is date
[service@NDL-BASS-YS-VM-129-152 wy]$ echo today is `date`
today is Wed Nov 29 16:12:44 CST 2017

单括号、双括号、反引号 的区别

1、单括号 与 反引号

# a=$(date)    【等同于】    a=`date`
echo $(date)
Wed Nov 29 16:14:39 CST 2017

echo `date`
Wed Nov 29 16:14:45 CST 2017
# 实例(4个结果一样)
#!/bin/bash
echo '当前时间-系统变量:' `date +'%Y%m%d %H:%M:%S' -d @$(date +%s)`
echo '当前时间-系统变量:' $(date +'%Y%m%d %H:%M:%S' -d @`date +%s`) 

btime=`date +%s`
echo '当前时间-自定义变量:' `date +'%Y%m%d %H:%M:%S' -d @$btime`
echo '当前时间-自定义变量:' $(date +'%Y%m%d %H:%M:%S' -d @$btime)

2、双括号 与 反引号

# a=$((1+2))    【等同于】    a=`expr 1 + 2`
echo $((1+2))
3
echo `expr 1 + 2`
3