4
我想生成一個由CUSTOM_PARAMS
等變量附加的SQOOP命令。 我已經在一個文件中定義了變量:說hi.cfg
如何在bash命令替換中轉義單引號字符
該變量也有一些單引號以及'orc'。
cat hi.cfg CUSTOM_PARAMS="--query select * from blah..blah where \$CONDITIONS --split-by blah --create-hcatalog-table --hcatalog-external-table --hcatalog-storage-stanza stored as 'orc' --compress --compression-codec 'snappy' --fields-terminated-by '|' -m 5 --target-dir /any/dir"
當我源頭上命令提示符下文件,但呼應它給了我到底什麼寫在那裏看起來是正確的。
source hi.cfg echo "$CUSTOM_PARAMS" --query select * from blah..blah where $CONDITIONS --split-by blah --create-hcatalog-table --hcatalog-external-table --hcatalog-storage-stanza stored as 'orc' --compress --compression-codec 'snappy' --fields-terminated-by '|' -m 5 --target-dir /any/dir
但是,當我把這種從下面shell腳本:
cat hi.sh echo "Generating Sqoop Command" source $HOME/hi.cfg echo "${CUSTOM_PARAMS}" SQOOP_COMMAND="SQOOP statement : sqoop import blah blah "$CUSTOM_PARAMS"" echo $SQOOP_COMMAND
的*在變量字符被當作命令:
sh hi.sh Generating Sqoop Command --query select * from blah..blah where $CONDITIONS --split-by blah --create-hcatalog-table --hcatalog-external-table --hcatalog-storage-stanza stored as 'orc' --compress --compression-codec 'snappy' --fields-terminated-by '|' -m 5 --target-dir /any/dir SQOOP statement : sqoop import blah blah --query select 0 00 000000_0 000073_0 000103_0 02 09.txt 1 from blah..blah where $CONDITIONS --split-by blah --create-hcatalog-table --hcatalog-external-table --hcatalog-storage-stanza stored as 'orc' --compress --compression-codec 'snappy' --fields-terminated-by '|' -m 5 --target-dir /any/dir
我需要稍後在腳本中運行SQOOP語句,並嘗試了幾個選項,但沒有幫助。 我也試過\*
但沒有幫助,它輸出:
Generating Sqoop Command --query select \* from blah..blah where $CONDITIONS --split-by blah --create-hcatalog-table --hcatalog-external-table --hcatalog-storage-stanza stored as 'orc' --compress --compression-codec 'snappy' --fields-terminated-by '|' -m 5 --target-dir /any/dir SQOOP statement : sqoop import blah blah --query select \* from blah..blah where $CONDITIONS --split-by blah --create-hcatalog-table --hcatalog-external-table --hcatalog-storage-stanza stored as 'orc' --compress --compression-codec 'snappy' --fields-terminated-by '|' -m 5 --target-dir /any/dir`
非常感謝Janos現在可以運作:) –