Shell imposta le variabili d'ambiente per il comando

1

Voglio eseguire un programma in Terminal e impostare le sue variabili di ambiente. Secondo la mia ricerca si può fare ciò usando:

VARIABLE="value" VARIABLE2="value2" run_program

Ora mi piacerebbe impostare una varietà di variabili usando un file di configurazione. In effetti, potrei iniettare variabili nella shell attiva usando:

. program_variables.config

Quindi posso usare echo $VARIABLE nel terminale.

Ad ogni modo, ora eseguo

. program_variables.config run_program

Non riesco ad accedere alle variabili all'interno del programma. Ho anche provato a separare le due parti con ; e && .

Dopo aver pensato a cosa sta succedendo lì ho avuto le seguenti idee:

cat program_variables.config | xargs run_program
cat program_variables.config | tr -d '\n' run_program

e alcuni altri.

Non ho scritto personalmente il programma chiamato, quindi non posso modificare il comportamento su come le variabili vengono lette.

Qualche idea su come faccio ad emettere il file come se io stesso avrei scritto il suo contenuto nella shell?

    
posta Julian F. Weinert 03.04.2015 - 01:16
fonte

1 risposta

0

Le variabili sono impostate solo nell'ambito corrente, per renderle visibili in un programma chiamato o dopo un'origine (ad esempio . file ) che devi esportarle.

Quindi program_variables.config dovrebbe essere

export VARIABLE="value" 
export VARIABLE2="value2"

Quindi esegui l'eseguibile,

Questo può essere tutto in uno script per eseguire l'eseguibile

#!/bin/sh
export VARIABLE="value" 
export VARIABLE2="value2"
run_program

Salva questo file e rendilo eseguibile.
Quindi usa il nome os questo file come programma

    
risposta data 03.04.2015 - 01:25
fonte

Leggi altre domande sui tag