Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在bash变量中使用空格保存路径_Bash_Path_Char_Double Quotes - Fatal编程技术网

在bash变量中使用空格保存路径

在bash变量中使用空格保存路径,bash,path,char,double-quotes,Bash,Path,Char,Double Quotes,我在一个非常非常简单的任务上遇到了问题。为了后续使用,我想在一个变量中存储一个dirname,该变量中有空格。为了看看它是否有效,我用ls调用它 #!/bin/bash BASE_DIR=/home/woodrow/Documents/"sleepy kittens"/ #SOURCE_FILE=${BASE_DIR}file.mp4 ls ${BASE_DIR} 但我如何防止这种胡说八道呢 ls: cannot access '/home/woodrow/Documents/sleepy

我在一个非常非常简单的任务上遇到了问题。为了后续使用,我想在一个变量中存储一个dirname,该变量中有空格。为了看看它是否有效,我用
ls
调用它

#!/bin/bash

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

ls ${BASE_DIR}
但我如何防止这种胡说八道呢

ls: cannot access '/home/woodrow/Documents/sleepy': No such file or directory
ls: cannot access 'kittens': No such file or directory
我尝试过但不起作用的变体:

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}
有人能告诉我吗?

你可以这样做:

(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'

引用你的变量,你的问题就会消失。
我尝试过但不起作用的变量:
BASE_DIR=“/home/woodrow/Documents/sleepy kittens/”和
ls“${BASE_DIR}”
应该起作用。@KamilCuk是的,这是真的。但在所有的事情中,我没有尝试过这种组合。谢谢,伙计们。