首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将环境变量从双引号转换为单引号

将环境变量从双引号转换为单引号
EN

Stack Overflow用户
提问于 2013-10-30 09:44:15
回答 1查看 67关注 0票数 0

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

build.bat:

代码语言:javascript
复制
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

代码语言:javascript
复制
#!/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}"

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-30 09:55:50

代码语言:javascript
复制
set LEGACY_SOURCE="c:\some\path"
set "LEGACY_SOURCE_CYG=%LEGACY_SOURCE:"='%"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19678772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档