作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想问一个问题:“您想使用哪种格式?”,然后根据答案是xml
还是json
,打印适当的输出。但是,如果不是xml
或json
,则代码完成。
码:
#!/bin/bash
read -r -e -p "What format do you want to use? json/xml?: " format
if [[ "${format,,}" == "json" ]]; then
curl=$curl"\"\Content-Type: application/json\"\
else [[ "${format,,}" == "xml" ]]; then
curl=$curl"\"\Content-Type: application/xml\"\
elif [[ "${format,,}" == "no" ]]; then
echo "Goodbye, you must specify a format to use Rest"
else
echo "Unknown"
exit 0
fi
echo $curl
[root@osprey groups]# ./test3
What format do you want to use? json/xml?: xml
./test3: line 8: syntax error near unexpected token `then'
./test3: line 8: `elif [[ "${format,,}" == "no" ]]; then'
最佳答案
我会使用更长的时间,但是使用起来更加友好:
err() { echo "$@" >&2; return 1; }
show_help() {
cat - >&2 <<EOF
You must specify a format to use Rest because bla bla...
EOF
}
select_format() {
PS3="Select the format do you want to use?> "
select ans in json xml "quit program"; do
case "$REPLY" in
[0-9]*) answer=$ans;;
*) answer=$REPLY;;
esac
case "${answer,,}" in
'') ;;
j|js|json) echo '-H "Content-Type: application/json"' ; return 0 ;;
x|xml) echo '-H "Content-Type: application/xml"' ; return 0 ;;
q|quit*) err "Bye..." ; return 1;;
h|help) show_help ;;
*) err "Unknown format $answer" ;;
esac
done
[[ "$answer" ]] || return 1 #handles EOF (ctrl-D)
}
curl_args=()
curl_args+=( $(select_format) ) || exit 1
echo curl "${curl_args[@]}"
1) json
2) xml
3) quit program
Select the format do you want to use?>
j
,
js
,
json
和xml的
x
,
xml
,xml的
h
获取帮助q
... 关于bash - IF ELSE声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43608524/
我是一名优秀的程序员,十分优秀!