首页 > 解决方案 > 用于打开外壳、在外壳中运行命令并保持外壳运行的 Bash 脚本

问题描述

我正在尝试使用 bash 脚本自动执行这些步骤

  1. 运行命令以访问程序的 shell(Kubernetes pod 的 bash shell)

    kubectl exec --stdin --tty hello-node-7567d9fdc9-zvz55 -- bash
    
  2. 在这个 shell 中,运行第二个命令(例如。python

    root@hello-node-7567d9fdc9-zvz55:/# python
    
    Python 3.7.4 (default, Aug 13 2019, 15:17:50) 
    [Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 
    
  3. 保持 shell在前台打开/运行(因此用户可以立即将更多命令输入到步骤 2 中启动的 python shell)

我可以使用下面的脚本完成上述第一步。我们如何进行第二步和第三步?

#! /bin/bash
bash -c 'kubectl exec --stdin --tty hello-node-7567d9fdc9-zvz55 -- bash'

标签: bashautomationkubectl

解决方案


对于第 2 步,您可以使用该nohup命令运行一个进程,即使用户注销该进程也不会被杀死。之后,shell 会继续运行,让您执行第 3 步


推荐阅读