
#!/bin/bash docker exec -i ubuntu-lgx bash << EOF echo "test file" >> /inner.txt ls -l /inner.txt cOntent=$(cat /inner.txt) echo ${conent} EOF 我想在宿主机用脚本进入 docker 的容器内,然后创建了一个文件,并 cat 出来文件的内容,赋给一个变量,然后离开容器。
但是执行的时候却提示,找不到此文件。用ls查看文件确实是存在的。
运行结果:
cat: /inner.txt: No such file or directory -rw-r--r--. 1 root root 58 Nov 14 11:51 /inner.txt 请问各位老哥,这种写法哪里有什么不妥吗?
1 zhuisui 2020-11-14 20:20:04 +08:00 是 << EOF 的部分在容器外被执行了吗 |
2 codehz 2020-11-14 20:21:18 +08:00 你没发现 cat /inner.txt 是在 host 上跑的吗 heredoc 里$()也会被解析, 除非你用 << 'EOF' xxx EOF 这样的格式 |
3 adminpassword 2020-11-14 20:53:57 +08:00 可以在宿主机上创建好文件,然后 docker cp 到容器里 |
4 liuguangxuan OP |