Я пытаюсь создать функцию, которая идет в определенный каталог, и, если указан один аргумент, добавьте его в строку каталога.Но что бы я ни пытался, я не могу заставить его работать, и bash всегда сообщает, что X не является каталогом, даже если я копирую / вставляю его в новую командную строку, он работает оттуда.
function projects ()
{
DIR=
if [ -n "$1" ]
then
DIR=$1
fi
echo "~/Projects/Working Branches/$DIR" | sed 's/ /\\&/g' | xargs cd
}
-
$ projects Parametric\ Search\ API
/usr/bin/cd: line 4: cd: ~/Projects/Working Branches/Parametric Search API: No such file or directory
$ projects "Parametric Search API"
/usr/bin/cd: line 4: cd: ~/Projects/Working Branches/Parametric Search API: No such file or directory
Я также пытался изменить Sed regexp на s/ /\\\\\\&/g
, который производит то, что выглядит как правильно экранированная строка, но приводит к той же самой точной ошибке
$ projects Parametric\ Search\ API
/usr/bin/cd: line 4: cd: ~/Projects/Working\ Branches/Parametric\ Search\ API: No such file or directory
$ projects "Parametric Search API"
/usr/bin/cd: line 4: cd: ~/Projects/Working\ Branches/Parametric\ Search\ API: No such file or directory
Наконец, я попытался окружить $DIR
каждой комбинацией цитат, о которой только могу подумать, но пока не повезло.