Как вставить окончательное имя файла в UNIX скриптах оболочки - PullRequest
0 голосов
/ 23 апреля 2020
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

Конкатенация работает нормально, когда я указываю строку с ней, но не, когда я указываю без нее.

Это отлично работает, создает файл tmp-YS- json:

touch ${inputLoadingPath}\tmp-${InputScheme}.json

Это не работает:

cp ${inputLoadingPath}\tmp-${InputScheme}.json ${inputLoadingPath}\${InputScheme}.json

Вывод:

YS

tmp-YS.json.part5

${InputScheme}.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 

1 Ответ

0 голосов
/ 23 апреля 2020

Вместо использования back sla sh используйте косую черту. Укажите / вместо \

$ {inputLoadingPath} / $ {InputScheme}. json

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...