如何在Google Colab中运行Shell脚本?已尝试!与%%shell指令
在Google Colab中运行Shell脚本的正确姿势
嘿,我知道你已经试过!和%%shell这两种方式了——其实这俩都是Colab里执行Shell命令/脚本的标准方法,可能是用法细节没拿捏准?我给你把这两种方式的正确打开方式拆解清楚:
1. 单条命令或短命令链:用!前缀
如果只是跑单条Shell命令,或者简短的命令链,直接在命令前加!就搞定,这是最常用的快速执行方式:
- 查看当前工作目录:
!pwd - 安装系统依赖包:
!sudo apt-get install -y htop - 给本地脚本添加可执行权限:
!chmod +x my-script.sh - 直接运行脚本文件:
!./my-script.sh
要是你需要把Shell命令的输出捕获到Python变量里,还能这么玩:
# 把ls的结果存到Python列表里 dir_contents = !ls -l /content print("当前目录内容:", dir_contents)
2. 多行Shell脚本块:用%%shell魔法命令
如果你的脚本是多行的,用%%shell更方便——它会把整个单元格的内容当作Shell脚本执行,不用每行都加!。注意%%shell必须放在单元格的第一行,比如:
%%shell # 这是一个完整的多行Shell脚本示例 echo "=== 开始执行脚本 ===" # 创建测试目录 mkdir -p colab_test cd colab_test # 写入内容到文件 echo "Hello from Colab's Shell environment" > test_file.txt # 读取文件内容 cat test_file.txt echo "=== 脚本执行结束 ==="
几个容易踩坑的点
- 权限问题:如果运行脚本时出现
Permission denied错误,先执行!chmod +x your-script.sh给脚本添加可执行权限 - 路径问题:Colab的默认工作目录是
/content/,上传的文件都会存在这里,用!pwd可以随时确认当前路径,避免找不到文件 - sudo权限:如果脚本需要系统级操作(比如安装软件),直接在命令前加
sudo即可,比如!sudo apt update
这两种方式基本能覆盖Colab里所有运行Shell脚本的场景,你可以根据脚本的长度和复杂度选对应的方法~
内容的提问来源于stack exchange,提问作者Jonasyou
相关产品推荐
相关产品推荐

