обработка $ 1 в пути к каталогу сценария оболочки

Я не получил, в какой именно форме (а) ваши исходные данные, (б) ваши - возможно поврежденные - данные резервной копии и (c ) Вы каким-либо образом подготовили файл, содержащий недостающие данные, который восполнит поврежденные данные резервной копии.

Но вот предложения:

$ cat missing_data corrupted_data > corrected_backup_data

или

$ diff original_data corrupted_data > missing_data.patch

, а затем

$ patch corrupted_data missing_data.patch

С уважением, Миха

1
30.06.2017, 23:46
1 ответ

Обязательно укажите путь в качестве аргумента скрипта, так как $1— это первый аргумент скрипта.

Если вы хотите, чтобы путь и имя скрипта (были полным путем к скрипту, например /path/to/crtMQdir.ksh), вместо этого вам нужно использовать $0.

Вам также необходимо убедиться, что ваш kshскрипт имеет права на выполнение:chmod +x /path/to/crtMQdir.ksh

Альтернативный способ, если вы хотите запустить его из текущего каталога, состоит в том, чтобы просто заменить $1на $PWDв вашем текущем скрипте. Если вы хотите, чтобы он использовал тот же каталог, что и для этого скрипта, вы также можете использовать $(dirname $0)вместо $1.

1
27.01.2020, 23:45

Теги

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