2016-05-31 11 views
0

I-Datei, die die folgenden DatenAusführen des Inhalts in einer Datei (Unix)

echo Hello "$Name" How are you 

Und im Master-Skript Namen hat, wird in einen String zugewiesen. Ich versuche, den Inhalt in der Datei auszuführen, so dass $ Name kann vom Master-Skript genommen werden, wie

Name=TEST 
a=$(cat abc.txt) 
b=`$a` 
echo b | mailx 

folgt, wenn ich versuche, für $ Name wie über dem Wert zu tun ist, nicht reflektiert.

Der Ausgang ist wie in der Post folgt

Hello "$Name" How are you 

Bitte helfen Sie mir, wenn im etwas falsch zu machen

Antwort

2

Wenn Sie unbedingt darauf vertrauen, dass es keine schädlichen Befehle in abc.txt, dies tun:

Name=TEST 
source abc.txt | mailx 

Andernfalls werden die Werte ein wenig sicherer zu ersetzen, dies tun:

export Name # and any other variables 
perl -pe 's/\$(\w+)/$ENV{$1}/g' abc.txt | mailx 
Verwandte Themen