bash - 如何获取多行关联数组?
问题描述
我正在尝试获取这样的多行关联数组
declare -p -A MOCK_RETURNS=(
['/usr/local/bin/docker']=""
['/usr/local/bin/docker history']="IMAGE CREATED AT CREATED BY SIZE COMMENT
cf0f3ca922e0 -10-18T20:48:51+02:00 /bin/sh -c #(nop) CMD ['/bin/bash'] 0
<missing> 2019-10-18T20:48:51+02:00 /bin/sh -c mkdir -p /run/systemd && echo 'do… 7"
) > mockResponse
---- other file
source mockResponse
echo ${MOCK_RETURNS['/usr/local/bin/docker history']}
将换行符保留/usr/local/bin/docker history
在 bash 中的 -value 中。可悲的是,它似乎是一条线。
我已经尝试过像
echo "declare -A MOCK_RETURNS=(
['/usr/local/bin/docker']=\"\"
['/usr/local/bin/docker history']=\"IMAGE CREATED AT CREATED BY SIZE COMMENT
cf0f3ca922e0 $nextYear-10-18T20:48:51+02:00 /bin/sh -c #(nop) CMD ['/bin/bash'] 0
<missing> 2019-10-18T20:48:51+02:00 /bin/sh -c mkdir -p /run/systemd && echo 'do… 7\"
)" > mockReturns
---- other file
source mockResponse
echo ${MOCK_RETURNS['/usr/local/bin/docker history']}
一直显示文件中的换行符mockReturns
,但是当我获取它时,它们又消失了。
解决方案
尝试回显包含以下内容的变量"
:
echo "${MOCK_RETURNS['/usr/local/bin/docker history']}"
$ declare -p -A MOCK_RETURNS=(
['/usr/local/bin/docker']=""
['/usr/local/bin/docker history']="IMAGE CREATED AT CREATED BY SIZE COMMENT
cf0f3ca922e0 -10-18T20:48:51+02:00 /bin/sh -c #(nop) CMD ['/bin/bash'] 0
<missing> 2019-10-18T20:48:51+02:00 /bin/sh -c mkdir -p /run/systemd && echo 'do… 7"
) > mockResponse
$ cat test
#! /bin/bash
source mockResponse
echo "${MOCK_RETURNS['/usr/local/bin/docker history']}"
exit 0
$ ./test
IMAGE CREATED AT CREATED BY SIZE COMMENT
cf0f3ca922e0 -10-18T20:48:51+02:00 /bin/sh -c #(nop) CMD ['/bin/bash'] 0
<missing> 2019-10-18T20:48:51+02:00 /bin/sh -c mkdir -p /run/systemd && echo 'do 7
编辑:
对于,如果据我所知declare
,一个选项是无用的。-p
推荐阅读
- foreign-keys - 为什么 MySQL 工作台使我所有的外键都是唯一的?
- java - 从 JSON 检索数据但无法从 JSONobject 访问 Arraylist
- python - UnicodeDecodeError:“utf-8”编解码器无法解码位置 0 的字节 0xb9:无效的起始字节
- laravel - 无法打开文件以读取 [文件链接] laravel
- django - 在 Django 中,如何在 UpdateView 等基于类的视图中访问 request.meta 和 http_referer?
- eclipse - 为什么在适用于 Enterprise Java Developers 2020-09 (4.17.0) 的 Eclipse IDE 上安装 Roo 支持失败 内部版本 ID:20200910-1200 与 STS 4.8.0
- python - 在 DataFrame 中查看具有正确表示的 \n (换行符)值
- drake - 如何解决“以下环境没有变量 x 的条目”的问题?
- docker - Docker学习问题
- java - 采用非对称方法的 OAuth2