1

I am having issues with a very, very simple task. For follow-up use, I would like to store a dirname in a variable which has spaces in it. To see if it works, I call it with ls.

#!/bin/bash

BASE_DIR=/home/woodrow/Documents/"sleepy kittens"/
#SOURCE_FILE=${BASE_DIR}file.mp4

ls ${BASE_DIR}

But how do I prevent this nonsense?

ls: cannot access '/home/woodrow/Documents/sleepy': No such file or directory
ls: cannot access 'kittens': No such file or directory

Varitions that I tried but didn't work:

BASE_DIR=/home/woodrow/Documents/sleepy kittens/
BASE_DIR="/home/woodrow/Documents/sleepy kittens/"
BASE_DIR=/home/woodrow/Documents/`sleepy kittens`/
BASE_DIR=/home/woodrow/Documents/"`sleepy kittens`"/
BASE_DIR=$(/home/woodrow/Documents/sleepy kittens/)
BASE_DIR=$("/home/woodrow/Documents/sleepy kittens/")
BASE_DIR=$("`/home/woodrow/Documents/sleepy kittens/`")
BASE_DIR=$(echo /home/woodrow/Documents/sleepy kittens/)
BASE_DIR=$(echo "/home/woodrow/Documents/sleepy kittens/")
BASE_DIR=$(echo "`/home/woodrow/Documents/sleepy kittens/`")

ls "${BASE_DIR}"

BASE_DIR=/home/woodrow/Documents/
STEP="${BASE_DIR}sleepy kittens/"
ls ${STEP}

Can someone please enlighten me?

WoodrowShigeru
  • 1,418
  • 1
  • 18
  • 25

1 Answers1

1

You can do this :

(0) matias #> touch 'my spaced file.txt'
(0) matias #> myFile='my spaced file.txt'
(0) matias #> ls -lh "$myFile"
-rw-rw-r-- 1 matias matias 0 Feb 19 15:21 'my spaced file.txt'
Matias Barrios
  • 4,674
  • 3
  • 22
  • 49