[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Alterar uma variável antes de executar um script bash através do subproc
From: |
rudsonalves |
Subject: |
Alterar uma variável antes de executar um script bash através do subprocess |
Date: |
Wed, 08 Aug 2012 00:20:20 -0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20120717 Thunderbird/14.0 |
Tenho que chamar um shell script, atualizando o conteúdo de uma
variável, algo comum em bash como:
NOME='conteudo' ./teste.sh
com teste.sh algo como:
-------------------------
#!/bin/bash
NOME=${NOME:='default'}
echo $NOME
-------------------------
para teste.
Gostaria de fazer isto pelo subprocess, com a variável shell em False,
algo como:
-------------------------
import shlex, subprocess
cmd = "ROOT='blabla' ./test.sh"
subprocess.Popen(shlex.split(cmd))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib64/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
-------------------------
Me parece que o problema acontece quando o subprocess passa o comando
para o bash :
bash -c ROOT=...
o bash interpreta o ROOT como fosse um aplicativo, ou algo parecido.
Alguem teria alguma idéia de como fazer isto com o shell = False?