Bagaimana saya bisa menggabungkan variabel shell ke parameter lain di baris perintah saya?
Sebagai contoh,
#!/bin/sh
WEBSITE="danydiop"
/usr/bin/mysqldump --opt -u root --ppassword $WEBSITE > $WEBSITE.sql
Saya perlu concatenate .sql
untuk$WEBSITE
shell-script
shell
variable
aneuryzm
sumber
sumber
${ }
tidak terjadi penggabungan. Misalnya,ELP=elp && echo $ELP && man --h${EPL}
tidak berfungsi.Hanya menyatukan isi variabel ke apa pun yang ingin Anda gabungkan, misalnya
Kutipan ganda tidak terkait dengan penggabungan: di sini
>$WEBSITE.sql
akan bekerja juga. Mereka diperlukan sekitar ekspansi variabel ketika nilai variabel mungkin berisi beberapa karakter khusus shell (spasi dan\[?*
). Saya sangat merekomendasikan menempatkan tanda kutip ganda di semua ekspansi variabel dan penggantian perintah, yaitu selalu menulis"$WEBSITE"
dan"$(mycommand)"
.Untuk detail lebih lanjut, lihat $ VAR vs $ {VAR} dan untuk mengutip atau tidak mengutip .
sumber
Saya biasanya menggunakan tanda kutip, misalnya
echo "$WEBSITE.sql"
.Jadi Anda bisa menulis seperti:
sumber
.
bukan karakter yang valid dalam nama variabel; lihat jawaban wag jika Anda ingin menyatukan string yang dimulai dengan karakter yang valid (mis. "$ WEBSITEsql" tidak akan berfungsi)