Followers 0

# How to use the same system shell all the time in python

## 7 posts in this topic

Hi,

I need to run several shell commands from Python. How do I use all the time the same shell?

Because if I use  system in such manner:

from os import system

system("set x=0") #setting a system variable
system("echo %x%") #it does not exist here anymore


after first use the defined variable does not exist anymore.

How to workaround this?

Thanks,

0

##### Share on other sites

Somehow this command with new line operator does not work, but one can join commands with & sign.

0

##### Share on other sites

It works fine for me under Ubuntu 12.10, Python 2.7.3.

What is the output of the following script?

import os
print os.system("x=15\necho \$x")


I have the following output:

15
0

Edited by renega_666
1

##### Share on other sites

If you are using Windows you might want to try \r\n instead of just \n for your newlines... perhaps that is the reason it doesn't work?

1

##### Share on other sites

As this what I am doing is a multiplatform installer I finally decided to use Batch/Shell files, so system command calls only a file which has everything inside. That's even better solution, than trying to concatenate all commands. It seems a bit more flexible now as one can put many scripts in a source directory and run them one by one.

Edited by Misery
0

##### Share on other sites

May I ask you why you want to create a multiplatform installer? I ask this because it is usually advised to use the targeted system's package manager (Windows Installer on Windows, Debian and RPM on GNU/Linux, PyPi if you want to distribute a python package, and so on...)

Edited by renega_666
0

## Create an account

Register a new account