如何 cd,然后从 shell 脚本中追加到文件?
How to cd, then append to a file from inside a shell script?
这是我的 shell 脚本的一部分:
...
docker exec -it graphite bash
cd /opt/graphite/conf
echo >> storage-schemas.conf
echo "[atlas]" >> storage-schemas.conf
echo "pattern = test.atlas" >> storage-schemas.conf
echo "retentions = 1s:15d,10s:45d" >> storage-schemas.conf
...
我想bash放入一个运行宁docker容器(称为石墨),
然后 cd 进入 /opt/graphite/conf
然后将几行文本附加到名为 storage-schemas.conf 的文件中。
但是当我 运行 上面的 shell 脚本时,它会在我的桌面(这是我的工作目录)上创建一个新文件 storage-schemas.conf 并附加到那个!
我知道我没有正确使用 cd 命令,正如 post here 所解释的那样。但我确实需要我的 shell 脚本没有任何依赖性,因为最终目标是为多个团队提供一键式解决方案。有办法吗?
事实证明,解决此问题的方法相当简单。我现在不是进入 docker 容器然后尝试附加文件,而是从主机复制文件并将其粘贴(覆盖)到 docker 容器内。我可以使用 docker cp
命令轻松实现这一点,而且我不必离开我的主要 bash 脚本(再次感谢 Marc 指出这一点)。
这是我的 shell 脚本的一部分:
...
docker exec -it graphite bash
cd /opt/graphite/conf
echo >> storage-schemas.conf
echo "[atlas]" >> storage-schemas.conf
echo "pattern = test.atlas" >> storage-schemas.conf
echo "retentions = 1s:15d,10s:45d" >> storage-schemas.conf
...
我想bash放入一个运行宁docker容器(称为石墨), 然后 cd 进入 /opt/graphite/conf 然后将几行文本附加到名为 storage-schemas.conf 的文件中。 但是当我 运行 上面的 shell 脚本时,它会在我的桌面(这是我的工作目录)上创建一个新文件 storage-schemas.conf 并附加到那个!
我知道我没有正确使用 cd 命令,正如 post here 所解释的那样。但我确实需要我的 shell 脚本没有任何依赖性,因为最终目标是为多个团队提供一键式解决方案。有办法吗?
事实证明,解决此问题的方法相当简单。我现在不是进入 docker 容器然后尝试附加文件,而是从主机复制文件并将其粘贴(覆盖)到 docker 容器内。我可以使用 docker cp
命令轻松实现这一点,而且我不必离开我的主要 bash 脚本(再次感谢 Marc 指出这一点)。