【发布时间】:2011-01-18 00:36:12
【问题描述】:
我发现了函数式编程错误,所以自然对我来说没有什么是足够好的了。 ;)
所以,在 bash 中可以这样写:
case $status in
"foo") status="bar" ;;
"baz") status="buh" ;;
*) status=$status ;;
esac
但我怕错别字,所以我宁愿写:
status=case $status in
"foo") "bar" ;;
"baz") "buh" ;;
*) $status ;;
esac
第二种形式是无效的,因为 case 评估为最后执行的命令的退出代码,这根本不是我想要的。
是否有简单的技巧来实现我我正在寻找的东西?
【问题讨论】:
-
你只是想写一个函数吗?
-
如果你害怕拼写错误,请在程序开头使用
set -u。
标签: bash functional-programming notation case-statement