Мой сценарий 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
), происходит сбой сразу после \
.