относительно вашей второй попытки с shebang в скрипте python:
~
в shebang;
это должно быть фактический путь ( #! / inside / home / thjmatth / ...
). #! / Inside / home / thjmatth / anaconda3 / bin / python / python3
. Проверка работоспособности: У вас есть каталог с именем
/ inside / home / thjmatth / anaconda3 / bin / python
, который содержит
исполняемую программу с именем python3
(т. Е. Полный путь к программе-интерпретатору:
/ inside / home / thjmatth / anaconda3 / bin / python / python3
?
Измените свой сценарий, чтобы сделать следующее:
#!/bin/sh
export PATH=~/anaconda3/bin/python:$PATH
while read p; do
type python3
screen -dm -S "$p" bash -c "type python3; exec sh"
done <cells.txt
и посмотрите, сможете ли вы выяснить, что происходит. Если вы все еще застряли, отредактируйте свой вопрос, включив в него вывод вышеуказанного.
Еще одно:
Вы всегда должны указывать все ссылки на переменные оболочки (например, "$ p"
)
, если у вас нет хорошая причина не делать этого,
и вы уверены, что знаете, что делаете.
export PATH=~/anaconda3/bin/python:$PATH
Это похоже на путь к исполняемому файлу . ПУТЬ
должен содержать каталоги:
export PATH=~/anaconda3/bin:$PATH
#!~/anaconda3/bin/python python3
/
. Эта строка shebang будет работать ~ / anaconda3 / bin / python
с аргументом python3
, за которым следует имя сценария.Вы, вероятно, этого не хотите, а вместо этого запускаете либо python
, либо python3
.
#! / Home / thomas / anaconda3 / bin / python
screen -dm -S $p bash -c "cd /inside/home/thjmatth/essential; python3 essentialpairs_ttest_tissue_1.py; exec sh"
Если бы вы все еще использовали эту строку после обновления строки shebang, она была бы проигнорирована; python3
из вашего PATH
(который не совпадает с python
!) будет выполнен и запустит скрипт по очереди и просто пропустит shebang строка в качестве комментария. Если вы сделаете скрипт исполняемым ( chmod + x essentialpairs_ttest_tissue_1.py
), вы можете запустить его напрямую:
./essentialpairs_ttest_tissue_1.py
и строка shebang будет обработана.
В этом случае вы можете , вероятно, уйти, просто исправив переменную PATH
из первого раздела, если только у вас нет стартовой конфигурации Bash, которая сбрасывает переменную. Если имя исполняемого файла - python
, обязательно обновите командную строку screen
, чтобы использовать ее вместо python3
.