2015-09-21 5 views
0

Я хочу, чтобы активировать виртуальный окр в сценарии оболочки, так что я написать простой скрипт следующим образом:источник: не найден в скрипте оболочки?

#!/bin/bash 

source ~/env/lib/bin/activate 
#nohup python mock_run.py 
#echo $! > save_pid.txt 

Я запустить сценарий с sh start.sh, но я получил ошибку следующим образом:

start.sh: 3: start.sh: source: not found 

Я запустил source ~/env/lib/bin/activate в порядке, так почему не удается в сценарии оболочки?

+0

Убедитесь, что вы используете его с Баш через #!/bin/bash в верхней части и '' sh start.sh''. Также источник имеет псевдоним '' .'', поэтому попробуйте ''. ~/env/lib/bin/activate'' –

+0

У меня есть '#!/bin/bash' в моем скрипте и'. ~/env/lib/bin/activate' в порядке, но почему 'source' не в порядке? – roger

+0

Скорее, * не использовать * sh старт.sh'. Запустите скрипт с помощью './Start.sh'. Не следует явно ссылаться на оболочку. –

ответ

2

Обратите внимание, что shebang линия:

#!/bin/bash 

не действует при вызове сценария с

sh script.sh 

притон действует только при вызове сценария непосредственно, как двоичный ,


Вам нужно либо:

chmod +x script.sh 
./script.sh 

сделать линию работу притон или вызовите его явно с Баш:

bash script.sh 
Смежные вопросы