Seperti yang ditunjukkan oleh teks, Anda hanya perlu referensi (misalnya dengan $VARNAME
atau ${VARNAME}
) variabel seperti pada perintah shell yang biasa. Namun, Anda harus memastikan bahwa shell tidak membesar sebelumnya.
Berikut adalah beberapa contoh untuk menggambarkan hal ini (dengan asumsi export FOO=BAR
):
$ echo '$FOO$FOO2' | envsubst
BAR
Seperti yang Anda lihat, $ FOO2 telah diganti dengan "" karena tidak didefinisikan. Sekarang kita dapat membatasi penggantian hanya $ FOO dengan:
$ echo '$FOO$FOO2' | envsubst '$FOO'
BAR$FOO2
menggunakan ""
alih-alih ''
akan menyebabkan substitusi sebelum diinginkan:
echo '$FOO$FOO2' | envsubst "$FOO"
$FOO$FOO2
(Ini berarti panggilan efektif envsubst "BAR"
yang tidak mendeteksi variabel sehingga tidak ada yang diganti.)
Seperti yang man
dikatakan -page, semua variabel yang direferensikan SHELL-FORMAT
diganti, jadi kita bahkan dapat melakukan ini:
echo '$FOO$FOO2$FOO3' | envsubst '$FOO some more text ${FOO3}'
BAR$FOO2
Seperti yang Anda lihat, SHELL-FORMAT
ini cukup fleksibel.
Akhirnya, parameter ini --variables
memungkinkan Anda untuk mengevaluasi variabel mana yang dipilih untuk diganti oleh SHELL-FORMAT
:
envsubst --variables '$FOO some more text ${FOO3}'
FOO
FOO3
Dalam contoh penggantian prematur dari atas ini akan menunjukkan kesalahan:
$ envsubst --variables "$FOO"
(empty string returned)
Seperti yang dinyatakan dalam man
halaman, envsubst
tidak memproses stdinput ketika --variables
hadir.
Kata-kata itu agak membingungkan. Untuk menulis ulang teks bantuan dengan lebih cermat:
Jadi untuk menjawab pertanyaan Anda secara eksplisit: Awali nama variabel dengan
$
.sumber