使用空格

时间:2017-07-14 08:31:47

标签: bash go environment-variables whitespace

问题的大局:我正在创建Golang脚本(http://github.com/Droplr/aws-env),用于保护检索环境变量并将其导出以用于其他进程。

正如我们所知,由于脚本无法在 [1],[2]之外导出变种,因此这并不容易。

所以我们尝试这样做的方式基本上是outputing export statements,然后使用bash反引号来运行该命令。

最终用法如下:

`aws-env` && printenv

其中printenv应显示由评估的aws-env输出(包含“export”语句)导出的变量。

问题出现在包含空格/换行等的变量上。

简化下划线代码,这个有效:

$ export A=b\ b
$ printenv | grep A=
A=b b

而这 - 不是:

$ `echo export A=b\ b`
$ printenv | grep A=
A=b

我已经讨论了其他Stackoverflow讨论([3])但是找不到明确的答案(主要是答案是不使用反引号,但是我们试图解决它的整体问题不会那么容易...)

2 个答案:

答案 0 :(得分:0)

如果我正确地遵循这个,aws-env将输出如下内容:

export A=b\ b
export B=test
export C=this\ is\ a\ test

您希望在当前shell中执行这些命令吗?如果是这样,这应该有效:

. <(aws-env)
printenv | egrep "^[ABC]="

答案 1 :(得分:0)

我已经通过struct CardView: View { let card: Card var body: some View { VStack() { HStack() { VStack(alignment: .leading) { Text(card.title) .fixedSize(horizontal: false, vertical: true) .frame(width: 100, height: CGFloat(card.height)) .layoutPriority(99) } Spacer() } .padding([.leading, .trailing, .bottom], 8) } .background(Color.yellow) .cornerRadius(8) .background( RoundedRectangle(cornerRadius: 8) .stroke(Color.secondary.opacity(0.5)) ) } } struct Card { let title: String let subtitle: String let height: Int } 进行了测试 它既可以使用转义空格,也可以使用引号。