Pertanyaan ini sudah memiliki jawaban di sini :Mengapa tilde (~) tidak mengembang di dalam tanda kutip ganda?
(4 jawaban)
Tutup 3 tahun yang lalu.
Linux
(4 jawaban)
Tutup 3 tahun yang lalu.
Apa yang salah dengan perintah di bawah ini?
$ var1="~/Music/$(date +%d%m%y)"
$ echo "$var1"
~/Music/240118
$ mkdir "$var1"
mkdir: cannot create directory ‘~/Music/240118’: No such file or directory
Namun
$ mkdir ~/Music/240118
bekerja.
Tidak pernah terpikir saya akan mengajukan pertanyaan seperti itu setelah bertahun-tahun menggunakan bash…
Jawaban yang Diterima:
Perluasan tilde tidak berfungsi setelah variabel diperluas, jadi jika Anda memasukkan tilde literal di var
, itu akan berakhir sebagai tilde literal ke mkdir
. (Perhatikan bagaimana pesan kesalahan dari mkdir
memiliki tilde literal di dalamnya, bukan jalur sebenarnya dari direktori home Anda.)
Dan, karena Anda menempatkan tilde dalam tanda kutip dalam tugas, itu juga tidak meluas di sana. Jika tidak ada dalam tanda kutip, ya:
$ var="~/Music"; echo $var
~/Music
$ var=~/"Music"; echo $var
/home/me/Music
Tentu saja, Anda selalu dapat menggunakan $HOME
sebagai gantinya:
$ var="$HOME/Music"; echo $var
/home/me/Music
Jenis Terminal Apa Yang Harus Didukung Jika Menerapkan Emulator Terminal??
Tr Analog Untuk Karakter Unicode?