在Bash中手动输入Windows路径,如何转换为POSIX路径?

时间:2019-07-04 15:42:59

标签: windows bash sh git-bash

当我在Bash中手动输入Windows路径时, 我想将其转换为POSIX路径并将其保存在变量中。 但是转义字符不会转义。

我想输入C:\Users\xiang\Downloads\Compressed并将其转换为 /c/users/xiang/downloads/compressed


#!/bin/sh

read -rp "Enter a path: " pth

dir=$(echo "/$pth" | sed -e 's/\\/\//g' -e 's/://')

cd ${dir}

git status

read -n 1 -s -r -p "Press any key to continue"

exit 0;

enter image description here

2 个答案:

答案 0 :(得分:1)

这是因为bash将\中的反斜杠C:\Users\<user>\Downloads\Compressed视为转义字符。要解决此问题,您需要输入为C:\\Users\\<user>\\Downloads\\Compressed

答案 1 :(得分:1)

问题在于Windows路由中的反斜杠被认为是一种转义字符的方法。

这里有两个选项,要么用双反斜杠(C:\\ Users \\ ...)编写路由,要么可以使用read -rp "Enter a path: " pth(请注意r)。

我个人比较喜欢第二种选择,因为您不必告诉其他用户使用双反斜线编写路由,而且更简单。