如果为空,如何使${x:?}
返回非零$x
?默认情况下,它以 退出 shell(本例中为子 shell)0
。
function sth() {
local url="${1:?}"
...
}
(sth) ; echo $? # shows 0
更新:正如 Stéphane Chazelas 所说,这只发生在交互式使用中。
答案1
正如评论中所解释的,${x:?}
它本身无法做到这一点。但是,您可以使用条件语句轻松完成您想要的操作:
% sth() { [[ -n $1 ]] || return; local url="$1" }
% sth; print $?
1