如下例子所示:
#!/bin/sh dt=20180829 rdms_presql='select * from dm_general_stat where dimcode = "day" and dimvalue ='${dt} java -Djava.ext.dirs=lib com.etl.Hive2RMDS --hive_url ${rdms_presql}
想把一段sql作为参数传递给java程序的入口参数中,如果直接写的话,会从空格处自动切分开。
解决方法:将这个引用变量用双引号括起来
#!/bin/sh dt=20180829 rdms_presql='select * from dm_general_stat where dimcode = "day" and dimvalue ='${dt} java -Djava.ext.dirs=lib com.etl.Hive2RMDS --hive_url "${rdms_presql}"