0
我正在構建一些源代碼,其中包含兩個遺留部分 - 一個基於bat/cmd文件的窗口,另一個基於類似unix的構建系統,與autools,makefiles等 因此,爲了防止大規模重寫構建系統,cygwin bash從bat文件中調用。我需要在構建腳本中使用源變量(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}"
所以問題是如何消除雙引號相同的路徑,與普通行情的重複。
謝謝!這工作得很好 –