Zshパラメータ拡張には次のものがあります。
"${test_var:-"${HOME}/test"}"
${HOME}/test
しかし、ここではそれが存在することを確認し、そうでない場合(スペース文字列)test_var
に拡張したいと思います。" "
これに対するインラインソリューションはありますか?
答え1
echo ${test_var:-~/test(N)}
閉じる。 a (N)
(ここではリストコンテキストにあるように)を追加すると~/test(N)
globになり、glob修飾子のため()にディレクトリエントリがN
ないとtest
globが空になるように拡張されます。$HOME
~
これは、1つのスペースの議論ではなく、無に拡張されるため、要求されたものとは異なります。
これを行うには、次の手順を実行します。
f=(~/test(N)); echo ${test_var:-${f:-' '}}
ちょっとしたチートですが、コマンド置換を使用することもできます。
echo ${test_var:-"${$(printf %s ~/test(N)):-' '}"}
または:
echo ${test_var:-"$((){<<<${1-' '}} ~/test(N))"}