Saya memiliki variabel yang disebut filepath=/tmp/name
.
Untuk mengakses variabel, saya tahu bahwa saya bisa melakukan ini: $filepath
Dalam skrip shell saya, saya mencoba melakukan sesuatu seperti ini (backticks dimaksudkan)
`tail -1 $filepath_newstap.sh`
Baris ini gagal, duuh !, karena variabel tidak dipanggil $filepath_newstap.sh
Bagaimana cara menambahkan _newstap.sh
nama variabel?
Harap dicatat bahwa backticks dimaksudkan untuk evaluasi ekspresi.
set -u
yang menyebabkan skrip dibatalkan jika Anda mereferensikan variabel yang tidak ditentukan.${}
dan tanda kutip ganda? Haruskah saya memilih salah satu dari yang lain?Gunakan tanda kurung kurawal di sekitar nama variabel:
sumber
$filepath_newstap.sh
ditafsirkan sebagai${filepath_newstap}.sh
daripada dimaksudkan${filepath}_newstap.sh
, yang akan menyelesaikan masalah."$filepath"_foo
dan${filepath}_foo
akan diperluas menjadi/tmp/name_foo
. Namun,'$filepath'_foo
,"$"filepath_foo
, dan$"filepath"_foo
semua akan ekspansi menghindari sepenuhnya. Inilah sebabnya mengapaexport PATH=$PATH:$addpath
berfungsi untuk menambahkan:$addpath
(yang akan tunduk pada perluasan parameter) kePATH
variabel lingkungan.Di Bash:
sumber