如何在 Bash shell 脚本中围绕字符串生成边框?

Qui*_*enn 2 bash

有没有办法在 Bash 中使用像-和这样的字符在给定的字符串周围生成边框|并自动扩展到字符串的长度?给定的字符串不应包含 EOF 序列并在处理时被删除。

echo "------------------"
echo "| External Drive |"
echo "------------------"
Run Code Online (Sandbox Code Playgroud)

Qui*_*enn 5

我在另一个使用 sed 的 Stack Exchange 站点上找到了一个解决方案。它对这个问题有不同的措辞。

border()
{
    title="| $1 |"
    edge=$(echo "$title" | sed 's/./-/g')
    echo "$edge"
    echo "$title"
    echo "$edge"
}

border "External Drive"
Run Code Online (Sandbox Code Playgroud)

结果

------------------
| External Drive |
------------------
Run Code Online (Sandbox Code Playgroud)