shell中引号、双引号、飘号(反引号)的区别及其注意事项!
单引号:单引号所括内容将被视为一字符串,像$等字符不会被执行。
双引号:双引号所括内容将被视为一字符串,它防止通配符扩展,但允许变量扩展,即像$符这种指令是会执行的。如果不想执行可在$前加上转义字符 \,或改为单引号。(就像sqoop指令中SQL语句后的$conditions 前就必须加转义字符,否则会在双引号内被提前解析)
--query "$2 and \$CONDITIONS"
反引号:单双引号括起的都是字符串,如果是一行不想分割的整体命令,就需要用反引号引起来,像 do_date=`date -d “-1 day” +%F` 若不用双引号,就不会将整条命令赋予do_date。
下面为一些使用测试:
#!/bin/bash
do_date=$1
echo '$do_date'--单引号