首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Bash中输出多行字符串?

如何在Bash中输出多行字符串?
EN

Stack Overflow用户
提问于 2012-06-10 23:27:16
回答 7查看 354.5K关注 0票数 327

如何在不使用多个echo调用的情况下在Bash中输出多行字符串:

代码语言:javascript
复制
echo "usage: up [--level <n>| -n <levels>][--help][--version]"
echo 
echo "Report bugs to: "
echo "up home page: "

我正在寻找一种可移植的方式来做到这一点,只使用Bash内置。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-06-11 01:11:45

这里的文档通常用于此目的。

代码语言:javascript
复制
cat << EOF
usage: up [--level <n>| -n <levels>][--help][--version]

Report bugs to: 
up home page:
EOF

所有从Bourne派生的shell都支持它们,包括所有版本的Bash。

票数 390
EN

Stack Overflow用户

发布于 2012-06-10 23:33:08

或者你可以这样做:

代码语言:javascript
复制
echo "usage: up [--level <n>| -n <levels>][--help][--version]

Report bugs to: 
up home page: "
票数 221
EN

Stack Overflow用户

发布于 2018-08-19 02:47:55

受本页上富有洞察力的答案的启发,我创建了一种混合方法,我认为这是最简单和更灵活的方法。你认为如何?

首先,我在一个变量中定义了它的用法,这允许我在不同的上下文中重用它。格式非常简单,几乎是所见即所得,不需要添加任何控制字符。这对我来说似乎相当便携(我是在MacOS和Ubuntu上运行的)

代码语言:javascript
复制
__usage="
Usage: $(basename $0) [OPTIONS]

Options:
  -l, --level <n>              Something something something level
  -n, --nnnnn <levels>         Something something something n
  -h, --help                   Something something something help
  -v, --version                Something something something version
"

然后我可以简单地使用它作为

代码语言:javascript
复制
echo "$__usage"

或者更好的是,在解析参数时,我可以在一行代码中对其进行响应:

代码语言:javascript
复制
levelN=${2:?"--level: n is required!""${__usage}"}
票数 82
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10969953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档