Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Bash中手动输入Windows路径,如何转换为POSIX路径?_Windows_Bash_Sh_Git Bash - Fatal编程技术网

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

在Bash中手动输入Windows路径,如何转换为POSIX路径?,windows,bash,sh,git-bash,Windows,Bash,Sh,Git Bash,当我在Bash中手动输入Windows路径时, 我想将其转换为POSIX路径,并将其保存在变量中。 但是转义字符不会被转义 我想键入C:\Users\xiang\Downloads\Compressed并将其转换为 /c/users/xiang/downloads/compressed #!/垃圾箱/垃圾箱 阅读-rp“输入路径:”pth dir=$(echo/$pth“| sed-e's/\\/\///g'-e's/://”) cd${dir} git状态 阅读-n 1-s-r-p“按任意键

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

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


#!/垃圾箱/垃圾箱
阅读-rp“输入路径:”pth
dir=$(echo/$pth“| sed-e's/\\/\///g'-e's/://”)
cd${dir}
git状态
阅读-n 1-s-r-p“按任意键继续”
出口0;

这是因为bash考虑将
C:\Users\\Downloads\Compressed
中的反斜杠
\
作为转义字符。要解决此问题,您需要以
C:\\Users\\\\Downloads\\Compressed
的形式输入

问题在于Windows路径中的反斜杠被视为转义字符的一种方式

这里有两个选项,一个是用双反斜杠(C:\\Users\\…)写路由,另一个是使用
read-rp“输入路径:”pth
(注意r)


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

使用
read-r
。查看手册页了解详细信息。看起来git bash将为Cygwin创建的
cygpath
可执行文件打包,以完全满足您的需要,因此我建议改用它:
cygpath'C:\foo'
outputs
/C/foo