我编写了一个管理lxc虚拟容器创建创建的脚本。它由在主机上执行的部分和由容器(虚拟客户)执行的部分组成。如果我可以在文件中编写两个脚本,并在需要时从中提取第二个脚本(并随后在容器上运行),那将更加优雅。
我依稀记得,在bash中有一种方法可以做到这一点,但我不知道如何找到此功能的名称以及如何使用它。
我需要这样的东西:
#/bin/bash
# here are commands that are to
# be executed by the host
<declare start of the code chunk that will be exported to file>
# here go commands that
# need to be invoked by the guest
<end of code chunk. Paste the above code into the /var/lib/lxc/<mycontainer>/rootfs/tmp/second-stage.sh>
sudo lxc-attach -n <container name> /tmp/second-stage.sh
答案 0 :(得分:5)
您可以使用here document将多行文字重定向到相关文件。由于您的文档正文包含代码,因此您需要通过引用heredoc分隔符字符串('EOT'
)来禁用参数替换以避免有趣的副作用:
[...]
cat >/var/lib/lxc/<mycontainer>/rootfs/tmp/second-stage.sh <<'EOT'
# your text/code goes here
EOT
[...]