我正在构建一些源代码,它们有两个遗留部分--一个类似windows,基于一堆bat/cmd文件,另一个基于类unix的构建系统,带有autools、makefile等。因此,为了防止大规模重写构建系统,从bat文件调用cygwin bash。我需要在构建脚本(LEGACY_SOURCE*)中使用源变量。但是,如果我用双引号设置LEGACY_SOURCE_CYG,bash不能将其作为参数处理。
build.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"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}"所以问题是如何消除双引号和普通引号中相同路径的重复。
发布于 2013-10-30 09:55:50
set LEGACY_SOURCE="c:\some\path"
set "LEGACY_SOURCE_CYG=%LEGACY_SOURCE:"='%"https://stackoverflow.com/questions/19678772
复制相似问题