shell-script-pt
[Top][All Lists]
Advanced

[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?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]