gpt4 book ai didi

bash - 删除起始空格制表符输出 echo 多行字符串

转载 作者:行者123 更新时间:2023-12-02 01:14:59 27 4
gpt4 key购买 nike

我无法弄清楚如何缩进 bash 脚本的部分内容,从而在代码中保留缩进。我希望输出格式正确,输出行没有任何制表符/空格前缀。

例如:脚本

#!/bin/bash

INFO1="something
output1"
INFO2="output2"
MY_INFO=INFO1

if [ True ]; then
INFO="
Here are the test results
bbb
ccc
aaa
${!MY_INFO}
"
fi
echo "${INFO}"

输出返回:
    Here are the test results
bbb
ccc
aaa
something
output1

预期输出:
Here are the test results
bbb
ccc
aaa
something
output1

最佳答案

保留空格的引号不是错误,而是一个功能。这就是双引号的用途。

另一个问题是bash ,(与 python 不同),不知道缩进以提高可读性——到 bash一个未加引号的空格与一千相同。

各种补救措施:

  • 引用多行字符串时放弃缩进,即:
    if [ True ]; then
    INFO="
    Here are the test results
    bbb
    ccc
    aaa
    ${!MY_INFO}
    "
    fi
  • 使用 bash ,(或其他一些工具),使缩进消失。所以首先定义一个缩进的多行字符串:
     foo="
    bar
    baz"

    然后调整 $foo 以删除空格:
     foo="${foo// }"

    现在, $foo 不再缩进了,但是如果有应该保留的空格,那就太过分了。
  • 和以前一样,但在显示时间,(这更浪费),即:
    echo  "${foo// }"
  • 关于bash - 删除起始空格制表符输出 echo 多行字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43036556/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com