执行已处理的字符串

时间:2015-03-28 22:12:42

标签: bash sed eval

我尝试了以下操作来更改斜杠并继续执行该文件夹,但它无法正常工作:

 # 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

另一个问题是,我如何获取路径字符串的参数?

1 个答案:

答案 0 :(得分:1)

不需要eval。直接使用cdshell parameter expansion执行\字符的替换。与/

dir='c:\test\folderA\C\'
cd "${dir//\\//}"

这种方法也允许你传递目录。例如,路径作为参数并将其指定为dir=$1