如何在Google Colab中运行Shell脚本?

5

我想在Colab中运行一个shell脚本,我使用了"!",也尝试了"%%shell"。

图片描述文字
3个回答

7

5

如果你在一个shell中,不仅仅是调用一个.sh文件——你应该在自己的终端中得到相同的错误。你的shell没有在当前目录中查找shell命令,因此你需要为你的脚本添加一些路径上下文,以便让shell知道它是一个实际可运行的程序,通常通过在脚本前面添加一个点来实现,例如使用

$ . testAllLatin.sh

替代

$ testAllLatin.sh

请查看Unix Stack Exchange网站上的“在shell中命令前带点号的含义是什么?”。最佳回答总结如下:

在这种情况下,点号表示将该文件的内容“源化”到当前shell中。 source 本身是一个shell内置命令。而 source 命令和点操作符是同义词。


就Colab和笔记本而言,%%shell 魔法功能以shell命令形式运行整个单元格。因此,您可以在单元格中简单地使用以下命令:

%%shell
. path/to/testAllLatin.sh

感叹号在shell中只运行单个命令行,因此您可以在其中插入Python代码。因此,您可以在一个cell中执行类似以下的操作:

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

无论如何,最好将shell单元格分开。


-1

在Colab中

!chmod u+x test.sh
!./test.sh

以上是你需要做的。

!test.sh 寻找命令,所以它永远不会像你的本地脚本那样工作。 如果你需要它作为命令,请将其移动到 $PATH 目录中。


在原问题中,OP已经尝试使用!并运行了一个shell脚本,而不是像ls这样的shell命令:“我想在colab中运行一个shell脚本!testAllLatin.sh。” - Gino Mempin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接