在带有“kathara Image”的 Docker 容器中执行简单的历史 bash 脚本时出错

Posted

技术标签:

【中文标题】在带有“kathara Image”的 Docker 容器中执行简单的历史 bash 脚本时出错【英文标题】:Error in a simple history bash script execution in a Docker container with a "kathara Image" 【发布时间】:2020-08-23 18:24:51 【问题描述】:

所以我的代码在我的机器上运行良好

#!/bin/bash

set -o history
history -w "hist.txt"

但是当我在我的 docker 容器中执行它时,它会在 hist.txt 文件中填充:

history -w "hist.txt"

另外,每当我在脚本中执行history > hist.txt 之类的操作时,它总是相同的。 提前致谢!

【问题讨论】:

我确实试过了,但我在 hist.txt 中只找到了 1 个条目。可以分享一下 Dockerfile 以及如何启动 docker 容器吗? 我没有使用 Dockerfile,而是使用基于“kathara/quagga”映像的容器来启动容器,我使用“kathara lstart”命令,但我也使用手动启动它:docker运行 -it kathara/quagga bash 并且问题仍然存在我认为问题是 kathara 图像没有? 【参考方案1】:

history -w "hist.txt" 是在该上下文中执行的唯一命令,因此history 仅包含 -> 它是从“hist.txt”中找到的。

这可能是因为没有定义 HISTFILE 环境变量。

例如,您可以通过添加行 HISTFILE=~/.bash_history 来设置它。只有在该文件中有一些历史记录时,这才有帮助。

如果您在该 Docker 容器中没有先前的历史记录,它可能是空的。

相关问题:https://unix.stackexchange.com/questions/5684/history-command-inside-bash-script

【讨论】:

以上是关于在带有“kathara Image”的 Docker 容器中执行简单的历史 bash 脚本时出错的主要内容,如果未能解决你的问题,请参考以下文章

Docke--基础篇

Docke容器介绍

Docke连载:第三章:Docker的使用

docke部署mysql

将带有数据的 Docker 容器克隆到另一个主机

Docker wwwhj6666com Compose18669144445 docke