Saya memiliki spasi di salah satu nama direktori. Saya ingin membuat daftar file di bawahnya dari skrip bash. Ini skrip saya:
fpath="${HOME}/"New Folder"/foobar.txt"
echo "fpath=(${fpath})"
#fpath="${HOME}/${fname}"
ls "${fpath}"
Output dari skrip ini adalah:
fpath=(/Users/<username>/"New Folder"/foobar.txt)
ls: /Users/<username>/"New Folder"/foobar.txt: No such file or directory
Tapi kapan daftar file di shell saya itu ada:
$ ls /Users/<username>/"New Folder"/foobar.txt
/Users/<username>/New Folder/foobar.txt
Apakah ada cara saya bisa mendapatkan ls
untuk menampilkan jalur dari skrip saya?
Jawaban yang Diterima:
Hapus saja tanda kutip ganda dalam:
fpath="${HOME}/New Folder/foobar.txt"
Karena isi variabel lengkap terkandung dalam tanda kutip ganda, Anda tidak perlu melakukannya untuk kedua kalinya. Alasan kerjanya dari CLI adalah karena Bash mengevaluasi tanda kutip terlebih dahulu. Gagal dalam variabel karena tanda kutip dengan garis miring terbalik diperlakukan sebagai bagian literal dari jalur direktori.