• linux中如何将多条命令写入在一行中,其中包括while语句,同时,在k8s的command中如何来使用


    我们有如下的命令:

     

    echo "Error response from daemon: driver failed programming external connectivity on endpoint sad_liskov" > 1.log
    while :
    do
      cat 1.log >> 2.log
      cat 2.log >> 1.log
      cat 1.log 
      cat 2.log
    done 

    这是个多行的命令,那如果我想要,将这些写在一行,该怎么做呢?

     

    我们知道,不同的命令之间用分号(;)分开,就可以了,那么对于while这种语法结构的怎么做呢?

     

    其实,很简单······

     

    只需要将while中本来是多行的,每个也用分号分开就可以了,我们继续往下看下,改写之后是什么样的······

     

    echo "Error response from daemon: driver failed programming external connectivity on endpoint sad_liskov" > 1.log;while : ;do cat 1.log >> 2.log ;cat 2.log >> 1.log ;cat 1.log ;cat 2.log;done
    

    为了方便展示,我们单独贴出来,将分隔的部分,标记出来

     

    echo "Error response from daemon: driver failed programming external connectivity on endpoint sad_liskov" > 1.log;while : ;do cat 1.log >> 2.log ;cat 2.log >> 1.log ;cat 1.log ;cat 2.log;done

     

    其中标记黄色的是,不同的语句之间的分隔,标记红色的是while语法中,每行的分隔。

     

    这样,我们就可以在一行中,写下整个的命令了,这个在k8s的deployment中,会在command中用到,比如:

     

            - /bin/bash
            - -c
            - 'echo "Error response from daemon: driver failed programming external connectivity  on endpoint sad_liskov" > 1.log; while : ; do cat 1.log >> 2.log; cat 2.log >> 1.log; cat 1.log; cat 2.log;done'

     

    在被k8s解析后,变成如下的命令:

          - command:
            - /bin/bash
            - -c
            - 'echo "Error response from daemon: driver failed programming external connectivity  on
              endpoint sad_liskov" > 1.log; while : ; do cat 1.log >> 2.log; cat 2.log
              >> 1.log; cat 1.log; cat 2.log;done'

     

    最后的命令,用单引号括起来就行,中间的几行无所谓。

  • 相关阅读:
    浏览器的缓存机制
    浏览器渲染原理及优化
    flutter 安装 & 启动 windows
    从浏览器输入 url 到页面渲染
    压力测试简单案例
    Office2021简体中文离线安装包下载地址合集,目前最全! L
    pdfplumber yongqi
    MySQL中对varchar类型排序问题 yongqi
    基础知识串讲笔记2022124 yongqi
    Faker是一个Python包,,待学习 yongqi
  • 原文地址:https://www.cnblogs.com/chuanzhang053/p/16404642.html
Copyright © 2020-2023  润新知