代码之家  ›  专栏  ›  技术社区  ›  Amit Eshel

用于将多行Bash脚本转换为单行的工具

  •  0
  • Amit Eshel  · 技术社区  · 1 年前

    根据我的理解,通过在每行代码的末尾插入分号并删除新行,可以将任何bash脚本转换为单行。

    首先,我的假设正确吗?

    其次,是否有任何工具/脚本可以自动执行此功能?

    注意:我不想更改Bash脚本中的任何命令,也不想优化为更改为基于管道的命令,什么都不想。保持原样,并能够运行它。 这是一种独特的情况,无论发生什么,我都必须把它放在一行。

    我试过在网上、谷歌或GitHub上搜索,但一无所获。

    1 回复  |  直到 1 年前
        1
  •  3
  •   KamilCuk    1 年前

    我的这种假设正确吗?

    不可以。不是每一行换行符都可以替换为 ; 。反例:

    if true; then
       echo 1
    fi
    
    cmd1 &&
    # comment
    cmd2
    

    可以转换为:

    if true; then echo 1; fi; cmd1 && cmd2
    

    后面没有分号 then 。后面没有分号 && 。添加注释和空行。

    有任何工具/脚本可以自动执行此功能吗?

    我不知道有什么。此外,我认为这样做没有任何价值。

    任何脚本都可以通过使用base64转换为单行,然后进行解码。

    oneline=$(base64 -w0 <script.sh)
    base64 -d <<<"$oneline" | bash