我们在shell脚本中可能会用到hadoop或者其他命令,而这些命令可能是一个整体,如果我们只是简单的写入到shell脚本中,可能会被分解成其他的各个子字段,即有可能会分成两部分去执行,这样就会导致命令执行失败。
hadoop fs -get /XXXXXX
上面这个就会分成hadoop fs 和get两部分这样就执行不成功了
所以在shell脚本中应该用反引号“括起来,注意这个事反引号不是单引号:
hadoop fs -get /XXXXXX
shell中单引号、双引号和反引号的区别
在bash中“空格”是一种很特殊的字符,比如在bash中这样定义str=this is String,这样就会报错,为了避免出错就得使用单引号”和双引号”“。
单引号”,双引号”“的区别是单引号”剥夺了所有字符的特殊含义,单引号”内就变成了单纯的字符。双引号”“则对于双引号”“内的参数替换($)和命令替换()是个例外。
是命令替换,命令替换是指Shell可以先执行
反引号`中的命令,将输出结果暂时保存,在适当的地方输出。语法:
command`