В моем файле .sh я не могу вызвать команды ant, mv или cp, но те же команды выполняются на терминале. Ниже приведен мой скрипт
файл sample.sh
#! /bin/sh
cp filename.so filename_org.so
android update project -p .
ant clean
ant release
путь добавлен в файл .bashrc.
export PATH=$PATH:/usr/bin/
cp, mv, ant работают только под терминалом, а не через scirpt.
android
/ant
, эти файлы находятся в / usr / bin?Ответы:
Поскольку ваш сценарий является сценарием оболочки (
/bin/sh
), вашиPATH
записи в нем.bashrc
не будут считываться, как для интерактивной оболочкиbash
(/bin/bash
).Чтобы сделать ваши
PATH
записи доступными для/bin/sh
сценариев, запускаемых конкретным пользователем, добавьтеPATH
запись в.profile
файл в домашнем каталоге этого пользователя.Кроме того, вы можете добавить полный путь для каждой из ваших команд в скрипте:
Или установите
PATH
переменную, включающую все необходимое$PATHS
в начале вашего скрипта.источник
PATH
в нужном месте вместо.bashrc
. Изменение сценария на bash не будет иметь никакого значения:.bashrc
загружается только интерактивными оболочками.Возникла та же проблема при запуске двоичного файла, путь которого указан в bashrc.
Решил проблему, выполнив следующие действия:
Добавьте двоичный файл или добавьте ссылку на двоичный файл в / usr / bin.
Затем проверьте с помощью
Вы можете удалить форму ввода bashrc.
источник
Вы можете сделать одну простую вещь, если у вас есть небольшой сценарий и закончите свою работу как можно скорее
перейти в командной строке использовать ниже команды
Команда выше напечатает вывод, включая путь, используя эту команду
источник