Bash - 替换变量



非常感谢您的帮助!

我想转换这个变量:

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:}

相关内容

  • 没有找到相关文章

最新更新