<分区>
我正在尝试自动化一些本应是一项相当简单的任务,但我找不到正确的标志/方法来完成它。
我正在自动化一堆 docker 容器,我想以某种人类可读的形式知道我使用的是哪个 shell。
所以,我开始/创建一个容器:
docker run -v /home/igor/Downloads:/home/Downloads/ -h debian7 -p 8081:8080 -itd --name igorDebian72 debian:7
然后尝试进入它的 bash,它已经很好地改变了提示和颜色:
sudo docker exec -ti igorDebian72 /bin/bash -c "`export PS1="\e[1;32m[\u@ \\H \\W \\@]\$ \e[m "`"
但是,这似乎是“运行”命令并返回主机,所以它没有用。
如果我分别运行这两件事:
sudo docker exec -ti igorDebian72 /bin/bash
这让我进入容器 bash,然后:
export PS1="\e[1;32m[\u@ \\H \\W \\@]\$ \e[m "
给我的正是我想要的。具有可见容器名称和与主机颜色不同的 Bash 提示符。
如何在一行中实现这一点?
附言与此同时,我使用这里的评论尝试了这个:
sudo docker exec -ti igorDebian72 bash --rcfile <(echo 'export PS1="\e[1;32m[\u@ \\H \\W \\@]\$ \e[m "')
sudo docker exec -ti igorDebian72 bash --rcfile <(export PS1="\e[1;32m[\u@ \\H \\W \\@]\$ \e[m ")
它保留在 bash 中,但似乎没有执行脚本。
我试着将它保存在一个 .sh 文件中,然后这样做:
sudo docker exec -ti igorDebian72 bash --rcfile <(echo trueColors.sh)
再次,保留在容器中,但不运行脚本。