GNU/Linux >> Belajar Linux >  >> Linux

Spasi Untuk Variabel Dalam Skrip Bash?

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.


Linux
  1. Bagaimana Cara Men-debug Skrip Bash?

  2. Eof Tak Terduga Saat Mencari Yang Cocok `”‘ – Bash Script?

  3. Memeriksa variabel lingkungan

  1. Skrip Bash:Menggunakan perintah skrip dari skrip bash untuk mencatat sesi

  2. Pencocokan pola skrip Bash

  3. Jalankan perintah bash pada pipa jenkins

  1. Kesalahan Dalam Script Hitung Untuk Jumlah Kejadian?

  2. Bagaimana Cara Menambahkan Baris Baru Ke Variabel Dalam Skrip Bash?

  3. bash + baca variabel &nilai dari file dengan skrip bash