$ echo $billreminder
D:\juno_workspace_x64\9.0.4_app\moneycenter\src\webapp\jsp\billreminder
billreminder="${$billreminder/'D:'/ '\\cygdrive\\d' }"
(这个返回上CYG双赢控制台窗口BAD替换操作)字符串替换操作
我想替换 'd:\' 与 '/ cygdrive/d' 在上面的字符串billreminder
$ echo $billreminder
D:\juno_workspace_x64\9.0.4_app\moneycenter\src\webapp\jsp\billreminder
billreminder="${$billreminder/'D:'/ '\\cygdrive\\d' }"
(这个返回上CYG双赢控制台窗口BAD替换操作)字符串替换操作
我想替换 'd:\' 与 '/ cygdrive/d' 在上面的字符串billreminder
你可以,如果你愿意,你字符串替换,但使用Cygwin,您还可以使用命令cygpath。
此命令转换成Windows风格的cygwin的风格为路径供给路径参数,你可以用它如下:
b=$(cygpath $b)
你可以这样来做:
b='D:\juno_workspace_x64\9.0.4_app\moneycenter\src\webapp\jsp\billreminder'
b=\\cygdrive\\d\\${b#D:\\}
echo $b
我想结果分配给一个变量,'回声/ cygdrive/d/$ {b#D:\\}''在这里不起作用 – shadow0wolf
它确实:b = \\ cygdrive \\ d \\ $ {b#D:\\}我会编辑 –
它的工作原理 – shadow0wolf
您可以使用此替代:
s='D:\juno_workspace_x64\9.0.4_app\moneycenter\src\webapp\jsp\billreminder'
echo "${s/D:\\//cygdrive/d\\}"
/cygdrive/d\juno_workspace_x64\9.0.4_app\moneycenter\src\webapp\jsp\billreminder
说:
billreminder="${billreminder/D:/\\cygdrive\\d}"
这是有效的,当billreminder和/ D:/之间留有空间时,出现了坏的错误错误,而且在它没有引用字符串之前我不知道它是否可以工作,替换字符串(有问题)应该用双引号/ – shadow0wolf
只需删除第二$
标志:
~/> echo ${billreminder/'D:'/ '\\cygdrive\\d'}
\\cygdrive\\d\juno_workspace_x64\9.0.4_app\moneycenter\src\webapp\jsp\billreminder
+1这是在CYGWIN环境中工作的正确方式,另一个ans我们只是玩弄(包括接受的),它不能识别windows路径'(\)'和Unix路径'(/)'的区别。 – BMW