0

我想做一些与此相同的事情:

[[ -z "$TICKET_NUMBER" ]] && read "TICKET_NUMBER?Ticket Number? "

但这更简洁,沿着这些思路(但实际上有效):

: ${TICKET_NUMBER:=$(read "TICKET_NUMBER?Ticket: ")}

我查看了Zsh 文档以查看是否有办法将输入传递read给 STDOUT,但似乎没有什么可以做到这一点。

理想的情况是通过尽可能少的仪式和重复直接传递值的命令。想象一个get_value命令:

: ${TICKET_NUMBER:=$(get_value "Ticket: ")}
4

2 回答 2

1

上一条命令的最后一个参数存储在_参数中,因此您可以将参数捕获给-v运算符。

test -v TICKET_NUMBER || read "$_?Ticket? "
于 2018-07-18T16:10:49.170 回答
0

这有点难看,但它有效:

: ${TICKET_NUMBER:=$(read "?Ticket: "; echo "$REPLY")}

这当然不是我想要的理想,但它可能更接近一步。

于 2018-07-14T02:48:41.150 回答