Когда sudo переменные окружения не сохраняются.
В моем случае я использую здесь -документ .
Вы помещаете свои действия, такие как my_script.sh
, в свой ЗДЕСЬ ДОКУМЕНТ:
su -u some_user <
Вы не должны помещать переменные прямо здесь, так как они будут интерпретироваться вашим текущим пользователем.
su -u some_user <
Если $MY_VAR
не установлен для пользователя, запускающего скрипт, он не будет установлен.
Ваша переменная должна вызываться внутри ваших скриптов, или вы должны экранировать их с помощью \
.
Напр.
su -u some_user <
Здесь $MY_VAR
будет иметь some_user
контекстуальное значение.
Если вы создали файл именно так, вы не установили для него разрешение на выполнение. Вы пропустили это:
chmod +x a.sh
Вы можете установить более конкретный режим, см. man chmod
для более подробной информации.
Если вы по какой-то причине не хотите делать его исполняемым, вы все равно можете запустить его в cron, вызвав его интерпретатором оболочки, например.
/bin/bash /home/subir/Jarvis/a.sh
Изменить, чтобы использовать предпочтительную оболочку.