在 linux 中,echo 和 pipe 如何与 docker 一起使用?
In linux, how does the echo and pipe work with docker?
我对公司项目中的以下 bash 脚本代码感到困惑:
scorm_init()
{
docker_start "scorm"
scorm='/tartar/scorm-engine/. tartar container-init'
echo $scorm | docker exec -i tartar--scorm /bin/bash
}
backend_init()
{
docker_start "backend"
# setup django backend user (engineering@tartar.com :: engineering)
backend="
from django.contrib.auth.models import User;
User.objects.filter(email='$LOCAL_SUPERUSER_EMAIL').delete();
User.objects.create_superuser('$LOCAL_SUPERUSER_EMAIL', '$LOCAL_SUPERUSER_EMAIL', '$LOCAL_SUPERUSER_PASSWORD');
"
log "Creating backend admin user: $LOCAL_SUPERUSER_EMAIL..."
echo $backend | docker exec -i tartar--backend python manage.py shell
}
echo ... |
如何使用以下 docker exec ...
命令?我知道 pipe |
将先前操作的输出提供给后续操作的输入。但是在这种情况下它是如何工作的呢?
docker exec
的 -i
选项表示标准输入应该通过管道传输到容器进程中。 $scorm
的值作为输入发送到在容器内启动的 /bin/bash
进程,它得到 运行 就好像你在 bash shell 上输入它一样.
我对公司项目中的以下 bash 脚本代码感到困惑:
scorm_init()
{
docker_start "scorm"
scorm='/tartar/scorm-engine/. tartar container-init'
echo $scorm | docker exec -i tartar--scorm /bin/bash
}
backend_init()
{
docker_start "backend"
# setup django backend user (engineering@tartar.com :: engineering)
backend="
from django.contrib.auth.models import User;
User.objects.filter(email='$LOCAL_SUPERUSER_EMAIL').delete();
User.objects.create_superuser('$LOCAL_SUPERUSER_EMAIL', '$LOCAL_SUPERUSER_EMAIL', '$LOCAL_SUPERUSER_PASSWORD');
"
log "Creating backend admin user: $LOCAL_SUPERUSER_EMAIL..."
echo $backend | docker exec -i tartar--backend python manage.py shell
}
echo ... |
如何使用以下 docker exec ...
命令?我知道 pipe |
将先前操作的输出提供给后续操作的输入。但是在这种情况下它是如何工作的呢?
docker exec
的 -i
选项表示标准输入应该通过管道传输到容器进程中。 $scorm
的值作为输入发送到在容器内启动的 /bin/bash
进程,它得到 运行 就好像你在 bash shell 上输入它一样.