我正在尝试创建一个转到特定目录的函数,如果指定了单个参数,则将其添加到目录字符串中。但是无论我尝试什么,我都无法让它工作,并且 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 正则表达式,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
了所有我能想到的引号组合,但到目前为止还没有运气。