【问题标题】:Save path with spaces in a bash variable [duplicate]在bash变量中保存带有空格的路径[重复]
【发布时间】:2020-02-19 15:11:48
【问题描述】:

我遇到了一个非常非常简单的任务。为了后续使用,我想将一个目录名存储在一个包含空格的变量中。为了看看它是否有效,我用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}

有人可以赐教吗?

【问题讨论】:

  • 引用你的变量,你的问题就会消失。
  • Varitions that I tried but didn't work: BASE_DIR="/home/woodrow/Documents/sleepy kittens/"ls "${BASE_DIR}" 应该可以工作。
  • @KamilCuk 是的,这是真的。但在所有的事情中,我没有尝试过这种组合。谢谢,伙计们。

标签: bash path char double-quotes


【解决方案1】:

你可以这样做:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-18
    • 2021-12-05
    • 2015-06-09
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    相关资源
    最近更新 更多