0

我正在构建一些源,它们有两个遗留部分 - 一个类似于 windows,基于一堆 bat/cmd 文件,另一个基于类似 unix 的构建系统,带有 autools、makefile 等。所以,为了防止大规模重写构建系统,从 bat 文件调用的 cygwin bash。而且我需要在构建脚本(LEGACY_SOURCE *)中使用源变量。但是,如果我用双引号设置 LEGACY_SOURCE_CYG bash 就无法将其作为参数处理。

构建.bat:

set LEGACY_SOURCE="c:\some\path"
set LEGACY_SOURCE_CYG='c:\some\path'
rem -----------------------------------------------
rem Building library, using Makefile
rem -----------------------------------------------
bash -c "export LEGACY_SOURCE_CYG=%LEGACY_SOURCE_CYG%; export PATH_WATCOM=%PATH_WATCOM%; export PATH_JWASM=%PATH_JWASM%; exec build/buildlib.sh"

构建库

#!/bin/sh
echo "Building USB library..."
SRC=$(echo -E "${LEGACY_SOURCE_CYG}" | sed -e 's/^\(.\{1\}\)/\L\1/' -e 's,:,,' -e 's,\\,/,g')
SRC="/cygdrive/${SRC}"

所以问题是如何消除双引号和普通引号中相同路径的重复。

4

1 回答 1

1
set LEGACY_SOURCE="c:\some\path"
set "LEGACY_SOURCE_CYG=%LEGACY_SOURCE:"='%"
于 2013-10-30T09:55:50.800 回答