Zsh:如果“$x”为空,如何使“${x:?}”返回非零?

Zsh:如果“$x”为空,如何使“${x:?}”返回非零?

如果为空,如何使${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

相关内容