Я пытаюсь преобразовать простой сценарий пакетной обработки в пакет. Согласно моему (ограниченному) пониманию упаковки, это означало бы, что я сохраню сценарий в /usr/bin
.
Проблема, сценарий пакетной обработки использует другой sh сценарий, сохраненный где-то в другом месте. sh скрипт не может быть запущен как a sudo
, и для sh сценария нужно к чтению-записи в файлы в каталоге sh сценария. То, что это означает, - то, что я должен иметь расположение для хранения этого сценария (и файлы, которые он использует) без требования sudo
. Это было бы возможно?
(BTW, поскольку сценарий также загружает файлы на пользовательский корневой каталог (~
), я не могу заставить кого-то запустить скрипт с sudo
потому что принадлежность файла затем неправильно обрабатывается с загруженными файлами. Если это не было бы закрепляемым.)
Можно выполнить использование команды bash /path/to/your.sh
. Если Вы устанавливаете файл как исполняемый файл ( chmod +x /path/to/your.sh
), затем можно сделать /path/to/your.sh
и это будет автоматически работать под ударом. Необходимо будет удостовериться, что сценарий имеет хижину.
$PATH является переменной окружения, которая перечисляет все местоположения, в которых требуется искать двоичные файлы при выполнении команды.
Это то, как /usr/bin
используется для двоичных файлов.
Вы видите свой текущий $PATH путем открытия терминала и выполнения echo $PATH
.
/most/important/path:/less/important/path
Как пример выше чтений, пути имеют приоритеты; сначала искавший сначала. Это означает, что, если существует две версии двоичного файла, тот в первом пути будет использоваться. После того как двоичный файл найден, он прекращает искать на других каталогах в Вашем $PATH.
При попытке работать banana
, Ваш компьютер собирается выглядеть на /most/important/path
. Если это находит banana
, это выполнит его. В противном случае это продолжит искать, идя дальше к /less/important/path
.
Для добавления каталогов к пути пользователя Вы могли добавить их к Вашему ~/.bashrc
файл. Вместо того, чтобы перезаписать и испортить Ваш путь, необходимо добавить к нему. Например:
export $PATH=${PATH}:/new/less/important/directory
Или можно предварительно ожидать для установки его как каталога самого высокого приоритета:
export $PATH=/new/more/important/path:${PATH}
Для предотвращения проблем необходимо, вероятно, только добавить (первый пример).