40

I am new in Python. I am creating a Python script that returns a string "hello world." And I am creating a shell script. I am adding a call from the shell to a Python script.

  1. i need to pass arguments from the shell to Python.
  2. i need to print the value returned from Python in the shell script.

This is my code:

shellscript1.sh

#!/bin/bash
# script for testing
clear
echo "............script started............"
sleep 1
python python/pythonScript1.py
exit

pythonScript1.py

#!/usr/bin/python
import sys

print "Starting python script!"
try:
    sys.exit('helloWorld1') 
except:
     sys.exit('helloWorld2') 
0

3 Answers 3

62

You can't return message as exit code, only numbers. In bash it can accessible via $?. Also you can use sys.argv to access code parameters:

import sys
if sys.argv[1]=='hi':
    print 'Salaam'
sys.exit(0)

in shell:

#!/bin/bash
# script for tesing
clear
echo "............script started............"
sleep 1
result=`python python/pythonScript1.py "hi"`
if [ "$result" == "Salaam" ]; then
    echo "script return correct response"
fi
Sign up to request clarification or add additional context in comments.

6 Comments

thanks ali. this code is working fine. but i need to return a string value. how it will be possible?
you should capture python result: a=`python python/pythonScript1.py "test"``; echo $a will print what you print in python code
In my case, sys.exit(0) doesn't return anything and the shell script stops as well. But print(0) works well. What happens in my case?
@zhangboyu , I guess you use ' instead of `
@AliNikneshan I really used `
|
10

Pass command line arguments to shell script to Python like this:

python script.py $1 $2 $3

Print the return code like this:

echo $?

Comments

3

You can also use exit() without sys; one less thing to import. Here's an example:

$ python
>>> exit(1)
$ echo $?
1

$ python
>>> exit(0)
$ echo $?
0

1 Comment

The exit() is defined in site.py and it works only if the site module is imported so it should be used in the interpreter only. scaler.com/topics/exit-in-python geeksforgeeks.org/…

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.