Использование предыдущего параметра команды в сценарии оболочки

/usr/bin/rsync -avh -r /Parent/Folder1 /Destination/

if [ $? == 0 ]
then
   cp /FolderCopyStatus/Success /Result/Success$(basename !:3)
else
   cp /FolderCopyStatus/Failure  /Result/Failure$(basename !:3)
fi

Вопрос 1

Я использую команду rsync для синхронизации двух папок в Cent OS. Если команда rsync выполнена успешно, я копирую папку в каталог Result из каталога Success и добавляю текущую дату. Это отлично работает

Я хочу, чтобы при копировании из успеха вместо добавления даты, Folder1 из приведенной выше команды должен быть добавлен. Итак, как?

Вопрос 2

Я автоматизировал этот сценарий оболочки в crontab. Я хочу передать Folder1 в качестве параметра команды в автоматизированном сценарии. Итак, как ??

Обновление:

 if [ $? == 0 ]
    then
       cp /FolderCopyStatus/Success /Result/Success$(basename !:3)
    else
       cp /FolderCopyStatus/Failure  /Result/Failure$(basename !:3)
    fi

Проблема : $ (basename!: 3) не работает в скрипте, но работает в обычной команде, например echo $ (basename!: 3)

-1
06.10.2016, 13:51
1 ответ

Вопрос 1

/ usr / bin / rsync -avh -r / Parent / Folder1 / Destination / {{ 1}} если [$? == 0] , затем cp / FolderCopyStatus / Success / Result / Success $ (basename! ^) else cp / FolderCopyStatus / Failure / Result / Failure $ (date +% F_% R) fi

Вопрос 2

Сделайте первую строку вашего скрипта такой:

/ usr / bin / rsync -avh -r / Parent / $ 1 / Destination /

А затем, когда вы вызываете скрипт, вызывайте его так:

/ path / to / script Folder1

0
28.01.2020, 05:13

Теги

Похожие вопросы