1

非常感谢您的帮助!

我想转换这个变量:

win_path= /cygdrive/g /virtual_tours/.archives/vt_template_8_0_15/test_directory_2/panos

进入:

win_path_dir= G: /virtual_tours/.archives/vt_template_8_0_15/test_directory_2/panos

这是我到目前为止所拥有的,但它不起作用。当我回显 $win_path 它什么都不返回(黑色,空白)

$win_path=$(echo $i | sed -e 's/\/cygdrive\/g/G\:/g')

干杯!

4

4 回答 4

1

你的方法很好,只有一点错字:

win_path=$(echo $i | sed -e 's/\/cygdrive\/g/G\:/g')

$win_path定义变量win_path的值时不要写(no $)。当您编写$win_path外壳程序时,会扩展变量的值。

于 2012-10-15T07:50:24.530 回答
0

$定义或设置变量时,不要在变量前面加上:

win_path=$(echo $i | sed -e 's/\/cygdrive\/g/G\:/g')

$导致字符串被变量$name的值替换,请参见bash 手册页

于 2012-10-15T07:47:41.810 回答
0

如果可以使用 wine,winepath就是完成这项工作的工具。

于 2012-10-15T10:05:08.277 回答
0

使用bash替换:

prefix=/cygdrive/g
win_path=${winpath/#$prefix/G:}

请注意,定义prefix并不是绝对必要的;它只是让您无需转义目录分隔符。以下工作很好,虽然它的可读性稍差:

win_path=${winpath/#\/cygdrive\/g/G:}
于 2012-10-15T13:00:06.583 回答