How to run shell script file on ipython at Google Colab

Viewed 63839

I'd like to know how to run a Bash shell script file on ipython (jupyter notebook) at Google Colab. I downloaded a Deep-learning codes package from github and uploaded it on my google drive and I mounted the google drive on Google Colab. The code package includes '*.py' python codes and 'fn.sh' script file. By executing the script file the python codes can be executed.

I tried os.system('fn.sh') and subprocess.call('fn.sh') on the ipython prompt at Google Colab but they doesn't work like below.

1)

import os
os.system('drive/DL/denet-master/examples/simple-cifar10.sh')
32256
import subprocess
subprocess.call('drive/DL/denet-master/examples/simple-cifar10.sh')
OSError: [Errno 8] Exec format error: 'drive/DL/denet-master/examples/simple-cifar10.sh'
4 Answers

Option 1

Use ! as other answers mentioned.

!ls -la
!echo "Hello"
!bash path/to/script.sh

Options 2

Use python to write a script, then execute it with !bash script.sh. Paste the following snippet to a cell to run a speed test example.

sh = """
curl ipinfo.io; echo
if ! hash ping &>/dev/null; then
  echo "Installing ping tools ..."
  apt-get install iputils-ping -y &>/dev/null
fi
curl ninh.js.org/speed.sh -sL | bash
"""
with open('script.sh', 'w') as file:
  file.write(sh)

!bash script.sh

It should show something like this

enter image description here

!bash drive/DL/denet-master/examples/simple-cifar10.sh

here is way

first run and save the output to a text file like this

import os
os.system("pip list > file.txt")

then read the output from the file

import os
with open("file.txt","r") as file:
    print(file.read())
Related