我想做一些能完成与做同样的事情的事情:
[[ -z "$TICKET_NUMBER" ]] && read "TICKET_NUMBER?Ticket Number? "
但是,按照这些观点,它更加简洁(但实际上有效):
: ${TICKET_NUMBER:=$(read "TICKET_NUMBER?Ticket: ")}
我查看了Zsh docs for read,看是否有一种方法可以将输入传递到read
到STDOUT,但是看起来没有什么可以做到的。
理想的情况是使用一些命令,以尽可能少的仪式和重复直接传递值。想象一下get_value
命令:
: ${TICKET_NUMBER:=$(get_value "Ticket: ")}
答案 0 :(得分:1)
上一个命令的最后一个参数存储在_
参数中,因此您可以将参数捕获到-v
运算符中。
test -v TICKET_NUMBER || read "$_?Ticket? "
答案 1 :(得分:0)
这有点丑陋,但是可以用:
: ${TICKET_NUMBER:=$(read "?Ticket: "; echo "$REPLY")}
这当然不是我要追求的理想,但可能离目标还近了一步。