我尝试了以下操作来更改斜杠并继续执行该文件夹,但它无法正常工作:
# change the backward slashes to forward
cmd_str="echo 'cd c:\\test\\folderA\\C\\' | sed 's/\\/\//g'"
# execute the processed string, goto folder
eval "cd $cmd_str"
它声明:
-bash: cd: echo: No such file or directory
sed: -e expression #1, char 8: unterminated `s' command
另一个问题是,我如何获取路径字符串的参数?
答案 0 :(得分:1)
不需要eval
。直接使用cd
,shell parameter expansion执行\
字符的替换。与/
:
dir='c:\test\folderA\C\'
cd "${dir//\\//}"
这种方法也允许你传递目录。例如,路径作为参数并将其指定为dir=$1
。