Zsh:「$ x」が空の場合、「$ {x:?}」がゼロ以外の値を返すようにするにはどうすればよいですか?

Zsh:「$ x」が空の場合、「$ {x:?}」がゼロ以外の値を返すようにするにはどうすればよいですか?

空の場合、${x:?}戻り値をゼロ以外の値にするにはどうすればよいですか$x?デフォルトでは、シェル(この場合はサブシェル)を終了します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

おすすめ記事