在 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 上输入它一样.