2016-12-27 4 views
-1
#!/bin/bash 

export folder=`date -d "today - 1 days" '+%Y%m%d'`; 

if filename in /r1/test/med_sms/FDA3A; then 

result= 

if filename = *$folder*; then 

result= mv $filename /r1/test/med_sms/FDA3A/test 

else 

if filename = *$folder*; then 

result= mv $filename /r1/test/med_sms/FDA3A/test 

elif 

done; 

Hi..I'm пытается выполнить вышеуказанную scrpot но бросает исключение, как ./test1.sh: строка 11: ошибка синтаксиса около неожиданной лексемы `done 'UNIX оболочки перемещать файлы из одной папки в другую папку

./test1.sh: line 11: `done' 

Может кто-нибудь помочь в этом?

+0

Сначала вы должны запустить это через http://www.shellcheck.net/ - это поможет вам решить проблему. Затем, если у вас все еще есть проблемы, вы должны вернуться и задать вопрос об этих конкретных проблемах. –

+0

Привет, я попробовал скрипт в shellcheck.net, но получил следующее исключение: #!/Bin/bash export date = 'date -d" сегодня - 1 день "+% Y% m% d''; echo "mv *" $ date "* rocra_directory/rocra_polled/med_sms/FDA3A rocra_directory/rocra_polled/med_sms/FDA3A/test" Исключение: ++ date -d 'today - 1 days' +% Y% m% d + дата экспорта = 20161226 + дата = 20161226 + эхо 'мв * 20161226 * rocra_directory/rocra_polled/med_sms/FDA3A rocra_directory/rocra_polled/med_sms/FDA3A/тест' мв * 20161226 * rocra_directory/rocra_polled/med_sms/FDA3A rocra_directory/rocra_polled/med_sms/FDA3A/test – user7344136

ответ

1
$ help if 
if: if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... 
[ else COMMANDS; ] fi 

Bash if заявления заканчиваются fi

+0

Привет, я попробовал сценарий, но получил следующее исключение #!/bin/bash export date = 'date -d" today - 1 days "'+% Y% m% d''; echo "mv *" $ date "* rocra_directory/rocra_polled/med_sms/FDA3A rocra_directory/rocra_polled/med_sms/FDA3A/test" Исключение: ++ date -d 'today - 1 days' +% Y% m% d + дата экспорта = 20161226 + дата = 20161226 + эхо 'мв * 20161226 * rocra_directory/rocra_polled/med_sms/FDA3A rocra_directory/rocra_polled/med_sms/FDA3A/тест' мв * 20161226 * rocra_directory/rocra_polled/med_sms/FDA3A rocra_directory/rocra_polled/med_sms/FDA3A/test .... можете ли вы помочь – user7344136

1

Вы не должны использовать ìfelif заявление таким образом, в соответствии со структурой вашей программы это следует искать что-то вроде:

export folder=`date -d "today - 1 days" '+%Y%m%d'`; 
if filename in /r1/test/med_sms/FDA3A; then 
    result= something_here 
elif filename = *$folder*; then 

    result= mv $filename /r1/test/med_sms/FDA3A/test 

elif filename = *$folder*; then 
    result= mv $filename /r1/test/med_sms/FDA3A/test 

else 
    result = PUT here the last condition 

fi 
+0

HI Nishant .. Спасибо за ваш ответ .. – user7344136

+0

cool mate, если он помогает, пожалуйста, примите ответы на ошибки elif post для дальнейшей помощи –

+0

HI Nishant .. Спасибо за ваш ответ .. Позвольте мне четко указать, что это требование. Попробуйте снять все файлы вчера в другую папку. Основная папка -/r 1/test/med_sms/FDA3A, и если это какие-то файлы вчерашнего дня, мне нужно снять этот файл в/r1/test/med_sms/FDA3A/test . Не могли бы вы помочь в этом ... Также я попробовал ваше предложение и я получил это исключение ./test2.sh: строка 14: синтаксическая ошибка около неожиданного токена 'fi ' ./test2.sh: строка 14:' fi' – user7344136

Смежные вопросы