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