非常感谢您提前帮助!
我想转换这个变量:
win_path = / cygdrive /克 /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')
干杯!
答案 0 :(得分:1)
你的方法很好,只有一点错字:
win_path=$(echo $i | sed -e 's/\/cygdrive\/g/G\:/g')
在定义变量win_path的值时,不要写$win_path
(no $)。
当您编写$win_path
时,shell会扩展变量的值。
答案 1 :(得分:0)
在定义或设置变量时,不要在变量前加$
:
win_path=$(echo $i | sed -e 's/\/cygdrive\/g/G\:/g')
$
会将字符串$name
替换为变量 name 的值,请参阅bash manpage。
答案 2 :(得分:0)
如果有葡萄酒,winepath就是工作的工具。
答案 3 :(得分:0)
使用bash
替换:
prefix=/cygdrive/g
win_path=${winpath/#$prefix/G:}
请注意,定义prefix
并非绝对必要;它只是
减轻了逃避目录分隔符的需要。该
下面的工作很好,虽然它的可读性稍差:
win_path=${winpath/#\/cygdrive\/g/G:}