Я создал сценарий, который относится к файлам в, он - локальный каталог
Это, кажется, хорошо работает при выполнении в том же каталоге, но, если сделано от где-то в другом месте"/home/user/script.sh
"затем это повреждается.
Я попробовал включая переменную, которая добирается, это - рабочий тракт, но все еще, кажется, имеет проблему. Как я могу зафиксировать это?
path=`dirname "$(readlink -f "$0")"` ...
В Вашем сценарии включайте cd
оператор, который устанавливает текущий каталог туда, где файлы потребности сценария, находится. Например, если Ваши файлы находятся в папке,/home/user/Documents", затем добавьте следующую строку в сценарии перед командами, которые на самом деле ожидают находить файлы:
cd "/home/user/Documents"
(Кавычки необходимы, если путь содержал бы пробелы или другие специальные символы).
Это могло быть
cd $path
, если Вам удается установить рабочий каталог через переменную. Для создания этой работы, хотя конструкция Вы делаете предложение используйте замену команды, т.е. $ (команда). Затем вывод команды будет присвоен строке, как которая в свою очередь можно присвоить переменной, т.е. чему-то:
path=$(dirname "$(readlink -f "[112]")") ...