Как запустить скрипт оболочки в гугл колабе? - PullRequest
0 голосов
/ 09 февраля 2019

Я хочу запустить оболочку скрипта в colab, я использовал "!"а также я попробовал "%% shell" enter image description here

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Либо %%shell, либо ! должно работать.Я подозреваю, что ваш сценарий оболочки не находится в вашем текущем рабочем каталоге.

Вы можете проверить содержимое текущего каталога, выполнив %ls

Вот полный пример запуска сценария оболочки:https://colab.research.google.com/drive/1i5lHPcsmcgeoFEGg0Dfwjhblsm2iMExP

enter image description here

0 голосов
/ 09 февраля 2019

Если вы находитесь в оболочке, вы не просто вызываете файл .sh - вы должны получить ту же ошибку в вашем собственном терминале.Ваша оболочка не ищет в текущем каталоге команд оболочки, поэтому вам нужно добавить некоторый контекст пути в ваш скрипт, чтобы оболочка знала, что это реально выполняемая программа, обычно путем добавления точки перед вашим скриптом, например, используйте

$ . testAllLatin.sh

вместо

$ testAllLatin.sh

Проверка Что означает точка перед командой в оболочке? на сайте Unix Stack Exchange.Верхний ответ суммирует:

Точка в этом контексте означает «источник» содержимого этого файла в текущей оболочке.Сама source является встроенной командой оболочки.И source и оператор точки являются синонимами.


Что касается Colab и Notebooks, магия %%shell выполняет всю ячейку как команду в оболочке.Таким образом, вы должны просто иметь возможность использовать следующее в ячейке:

%%shell
. path/to/testAllLatin.sh

Взрыв вместо этого запускает только одну строку в оболочке, так что вы можете иметь Python с вкраплениями, если хотите.Таким образом, в ячейке вы могли бы сделать что-то вроде этого:

print('this is Python stuff', 5+10)
!. path/to/testAllLatin.sh
print('is it all latin?')

Вероятно, лучше всего держать ячейки оболочки отдельно, в любом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...