Как "cd $variable", когда переменная пытается добавить "\" перед пробелами (путь содержит пробелы)?

Мой сценарий bash регистрирует свой собственный путь, чтобы он мог вернуться в свою папку после выполнения cd где-то (вроде если он исследует другой лес и может переместить свой дом).

А если в пути есть пробелы, я использовал sed, чтобы добавить \ перед каждым пробелом.

Но при использовании cd $SCRIPTPATH к этой переменной:

./newsed.sh: 11: cd: не может перейти к /media/daniell/B/bkp/ST500LM012\

Источник: newsed.sh:

#!/bin/bash -e

tmp="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
SCRIPTPATH="$(echo "$tmp" | sed 's/ /\\ /g')"

echo "$SCRIPTPATH"

ls
cd
ls
cd $SCRIPTPATH
ls

echo $SCRIPTPATH возвращает обычный путь (/media/daniell/B/bkp/ST500LM012\ HN-M500MBB\ Dat/0/ok/Pendrive/flshdrive/0.Floflis- ДНК/слои/почва), которую я могу вручную скопировать и записать в нее, и она работает; но когда cd обращается непосредственно к переменной (cd $SCRIPTPATH), происходит сбой сразу после \.

0
задан 1 November 2021 в 01:01

0 ответов

Другие вопросы по тегам:

Похожие вопросы: