У меня есть скрипт, который использует sh
оболочку. Я получаю сообщение об ошибке в строке, которая использует source
команду. Кажется source
, не входит в мою sh
оболочку.
Если я явно пытаюсь запустить source
из оболочки, я получаю:
sh: 1: source: not found
Должен ли я как-то установить «источник»? У меня неправильная версия sh
?
source
является «неправильной версией».source: not found
означает, чтоsource
команда была оценена правильно, но файл, который она должна была прочитать, не существует.source
потому что это особенность оболочки. Он не может быть реализован как внешняя команда.Ответы:
/bin/sh
обычно это какая-то другая оболочка, пытающаяся имитировать «Шелл». Многие дистрибутивы используют/bin/bash
дляsh
, это поддерживаетsource
. На Ubuntu, тем не менее,/bin/dash
используется, который не поддерживаетsource
. Большинство оболочек используют.
вместоsource
. Если вы не можете редактировать скрипт, попробуйте изменить оболочку, которая его запускает.источник
/bin/sh
звонки/bin/dash
. Традиционно/bin/sh
называется/bin/bash
режим sh-совместимости.SHELL := /bin/bash
в начало моего Makefile.В Bourne shell (sh) используйте. команда для получения файла
источник
source
это не так строгоsh
.. ./filename
. В противном случае я получил быsh: 1: .: filename: not found
ошибку при запуске тестов на Travis-CI.Тогда все будет хорошо
источник
dpkg-reconfigure
может быть недоступно для всех пользователей, особенно в системах, которые не основаны на Debiansource: not found
ошибки со старыми клиентами telnet после обновления Debian, спасибо.source
Встроенной является bashism. Напишите это просто как.
вместо.например
источник
Эта проблема возникает из-за того, что jenkins Execute Shell запускает скрипт через его / bin / sh
Следовательно, / bin / sh не знает «источник»
Вам просто нужно добавить строку ниже в верхней части вашей Execute Shell в jenkins
источник
Команда
source
встроена в несколько оболочек. Если у вас есть скрипт, он должен указать, какую оболочку использовать в первой строке, например:источник
Я столкнулся с этой ошибкой, когда пытался вызвать исходную команду из командной оболочки #Jenkins.
source profile.txt
илиsource profile.properties
Замена для исходной команды заключается в использовании,
. ./profile.txt
или. ./profile.properties
Примечание. Между двумя точками есть пробел (.)
источник
Я нашел в Makefile GNU на Ubuntu, (где / bin / sh -> bash)
Мне нужно было использовать. команда, а также укажите целевой скрипт с префиксом ./ (см. пример ниже)
источник не работал в этом случае, не уверен, почему, так как он должен вызывать / bin / bash ..
Моя переменная окружения SHELL также установлена в / bin / bash
Обратите внимание, что этот образец не включает символ табуляции; пришлось форматировать для обмена стека.
источник
source - это встроенная команда bash, поэтому для выполнения команды source вы можете войти в систему как Root.
sudo -s source ./filename.sh
источник
В Ubuntu вместо файла sh scriptname.sh для запуска файла я использовал. scriptname.sh и все заработало! Первая строка моего файла содержит:
#!/bin/bash
используйте эту команду для запуска скрипта
источник
Это может помочь вам, я получаю эту ошибку, потому что я пытался перезагрузить мой
.profile
с помощью команды,. .profile
и у него была синтаксическая ошибкаисточник
Bourne shell (sh) использует PATH для поиска в
source <file>
. Если файл, который вы пытаетесь найти, не находится на вашем пути, вы получите сообщение об ошибке «файл не найден».Пытаться:
источник
sh: 1: source: not found
нетfile not found