unix shell scrpt传递最终文件名

问题描述 投票:0回答:1
inputLandingFullPath="$1"
inputDataFileName="$2"
inputLogFullPath="$3"
inputLoadingPath="$4"
Datalake_Key="$5"
Datalake_Id="$6"
InputScheme=${inputDataFileName:19:2}
echo "$InputScheme"
touch ${inputLoadingPath}\tmp-${InputScheme}.json
cp ${inputLoadingPath}\tmp-${InputScheme}.json ${inputLoadingPath}\${InputScheme}.json

问题:

当我指定时,串联可以很好地工作,带有一些字符串,但是当我指定时,它不能工作。

touch $ {inputLoadingPath} \ tmp-$ {InputScheme} .json -Works Fine生成文件tmp-YS-json

cp $ {inputLoadingPath} \ tmp-$ {InputScheme} .json $ {inputLoadingPath} \ $ {InputScheme} .json -不起作用

输出:

YS

tmp-YS.json.part5

$ {InputScheme} .json

所需的输出

YS.json

我希望它应该产生YS.json。

参数

sh /Hadoop_SAN/TU_Prod/TMP/BB_Parse_JSON.sh'/ Hadoop_SAN / TU_Prod / TMP /''tesco_qhv5_extract-YS-2018.08.15.json''/ Hadoop_SAN / TU_Prod / TMP /''/ Hadoop_SAN / TU_Prod / TMP / '0 0

inputLandingFullPath =“ $ 1” inputDataFileName =“ $ 2” inputLogFullPath =“ $ 3” inputLoadingPath =“ $ 4” Datalake_Key =“ $ 5” Datalake_Id =“ $ 6” InputScheme = $ {inputDataFileName:19:2} echo“ $ InputScheme” touch $ { ...

shell unix arguments filenames
1个回答
0
投票

指定/代替\

© www.soinside.com 2019 - 2024. All rights reserved.