Вы можете изменить те файлы, которые пакетируются скриптом или в командной строке, используя perl или sed, которые оба способны напрямую редактировать файл.
Вот рабочий пример, который можно просто использовать в командной строке.
Замените startdir на полный путь к источникам скрипта.
Предполагается, что
- ваши скрипты заканчиваются на ".sh", нуждается в настройке
- что можно безопасно заменить это выражение во всем сценарии
- что эта замена должна быть сделана только 1 раз в строке
find startdir -name "*.sh" -print | xargs sed -i -e "s/\.\/main\.sh/\/main\.sh/"
Элегантность заключается в том, что xargs передает команде sed максимально возможное количество найденных имен файлов, чтобы уменьшить количество выполнений sed до минимума и не превышать максимальную длину командной строки.
Вы могли бы даже больше разобраться в сценарии оболочки, чтобы вы могли добавлять различные замены, если удаленные сценарии имеют разные имена.
В качестве альтернативы вы можете попытаться изменить каталог HOME удаленного пользователя / машины, на котором выполняются эти сценарии, чтобы в конце путь был правильным для «./main.sh».
Но это может иметь и другие последствия, я бы не стал этого рекомендовать.
Я не уверен, полностью ли я понимаю вашу проблему, возможно, вам нужно объединить мой «один вкладыш» с другим предложением сначала изменить каталог на «/», а затем запустить скрипт с «./» как «. " обычно не в ПУТИ. Затем вы должны изменить подстановку следующим образом:
find startdir -name "*.sh" -print | xargs sed -i -e "s=\./main\.sh=cd / \&\& \./main\.sh="