如何在不使用多个echo调用的情况下在Bash中输出多行字符串:
echo "usage: up [--level <n>| -n <levels>][--help][--version]"
echo
echo "Report bugs to: "
echo "up home page: "
我正在寻找一种可移植的方式来做到这一点,只使用Bash内置。
发布于 2012-06-11 01:11:45
这里的文档通常用于此目的。
cat << EOF
usage: up [--level <n>| -n <levels>][--help][--version]
Report bugs to:
up home page:
EOF
所有从Bourne派生的shell都支持它们,包括所有版本的Bash。
发布于 2012-06-10 23:33:08
或者你可以这样做:
echo "usage: up [--level <n>| -n <levels>][--help][--version]
Report bugs to:
up home page: "
发布于 2018-08-19 02:47:55
受本页上富有洞察力的答案的启发,我创建了一种混合方法,我认为这是最简单和更灵活的方法。你认为如何?
首先,我在一个变量中定义了它的用法,这允许我在不同的上下文中重用它。格式非常简单,几乎是所见即所得,不需要添加任何控制字符。这对我来说似乎相当便携(我是在MacOS和Ubuntu上运行的)
__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
"
然后我可以简单地使用它作为
echo "$__usage"
或者更好的是,在解析参数时,我可以在一行代码中对其进行响应:
levelN=${2:?"--level: n is required!""${__usage}"}
https://stackoverflow.com/questions/10969953
复制相似问题