In der aktuellen Datei definierte Variable und Echo einer externen Datei darin, die die Variable aufruft

In der aktuellen Datei definierte Variable und Echo einer externen Datei darin, die die Variable aufruft

Auf meinem Linux-Rechner mache ich Folgendes:

Erstellen Sie ein Skript mit dem Namen script.sh

 #!/bin/bash    
 variable=`df -hP`    
 echo < my_file.txt

Dann erstelle ich eine externe Datei namens my_file.txt

The disk usage is: $variable

Wenn ich das Skript „script.sh“ ausführe, wird nichts ausgedruckt.

Die erwartete Ausgabe ist:

The disk usage is: Filesystem      Size  Used Avail Use% Mounted on
udev            3.2G     0  3.2G   0% /dev
tmpfs           651M  9.2M  642M   2% /run
/dev/sda1       218G  9.5G  197G   5% /
tmpfs           3.2G   62M  3.2G   2% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.2G     0  3.2G   0% /sys/fs/cgroup
/dev/sda4       266G  1.1G  252G   1% /home
/dev/sda2       923M  137M  723M  16% /boot
tc              308G  158G  151G  52% /media/sf_tc
tmpfs           651M   52K  651M   1% /run/user/1000

Antwort1

Sie könnten exportIhre Variable verwenden envsubst:

#!/bin/bash
export variable=$(df -hP)
envsubst '$variable' < my_file.txt

Wenn Sie die Form verwenden envsubst < my_file.txt, werden alle exportierten Variablen ersetzt. Es ist sicherer, alle zu ersetzenden Variablen explizit aufzulisten, wie

envsubst '$var1 $var2 $var3' < file

Verwandt:

verwandte Informationen