Como passar uma variável para um processo sh criança? [duplicado]

5

Eu tenho um script bash e dentro desse script eu faço sh . Como passar uma variável para o novo shell? É assim (simplificado para o problema específico):

script.sh:

#!/bin/bash
#......
MYVAR=myvalue
sh -c 'some_code_here'
#......

Basicamente, quero usar a MYVAR na minha some_code_here parte. Estou pensando em criar um script temporário e executá-lo. Mas se houver uma maneira simples de passar, posso evitar o script temp.

    
por Community 31.08.2012 / 11:55

2 respostas

6

Apenas export it:

#!/bin/bash

export MYVAR=myvalue
sh -c 'some_code_here'
    
por 31.08.2012 / 11:58
2

Para evitar a necessidade de sintaxe especial do shell e evitar problemas com itens como sudo , use env :

env MYVAR=value sh -c "blah"
    
por 31.08.2012 / 12:55

Tags