我得到了一个带有通用用法/错误函数的脚本,它打印出错误,然后给出脚本用法信息。为了讨论这个例子,我把它减少了:
usage() {
test -n "$1" && printf "\n %s" "$1" >&2
}
usage "Error: text1 \ntext2 \ntext3"
这会产生输出:
Error: text1 \ntext2 \ntext3
我希望每组文本都在一个单独的行上。我该怎么做?
答案 0 :(得分:4)
您可以使用usage() {
[[ -n "$1" ]] && printf "$1" >&2
}
usage "Error: text1 \ntext2 \ntext3"
格式:
%b
并将其命名为:
usage() { [[ $@ ]] && printf "%b\n" "$@"; }
<强>输出:强>
usage "Error: text1 \ntext2 \ntext3"
根据Error: text1
text2
text3
:
help printf
答案 1 :(得分:3)
答案 2 :(得分:1)
只需删除格式字符串:
@Path("/hello")
handleTestRequest(
@QueryParam("name") String name,
@DefaultValue("-1") @QueryParam("age") Integer age)
答案 3 :(得分:0)
目前还不清楚,但如果你想要一个usage
函数将每个参数放在自己的行上,你可以改用它:
$ usage() {
printf %s\\n "$@" >&2
}
$ usage 'Error: text1' text2 text3
Error: text1
text2
text3
或者自己做循环并让usage
不要在空参数上输出任何内容:
usage() {
for arg; do
printf %s\\n "$arg" >&2
done
}
或借用anubhava的答案:
usage() {
[[ "$@" ]] && printf %s\\n "$@" >&2
}
或没有[[
基础:
usage() {
[ -n "$*" ]] && printf %s\\n "$@" >&2
}