0
変数vがzshに存在するかどうか知りたい場合は、${+v}
を使用できます。例:zsh:間接参照による変数の存在のテスト
u=xxx
v=
print ${+u} ${+v} ${+w}
出力。
変数の内容にアクセスするには、変数vに格納されている変数の名前がある場所に、${(P)v}
と入力します。例:
a=xxx
b=a
print ${(P)b}
出力xxxの。
は、と2つを組み合わせています:変数が存在するかどうかをテストしますが、変数の名前は別の変数に格納されています。これどうやってするの?例:
r=XXX
p=r
q=s
ここでは動作しません私のアプローチです:
print ${+${(P)p}} # Expect 1, because $p is r and r exists.
print ${+${(P)q}} # Expect 0, because $q is s and s does not exist
しかし、私はエラーメッセージzshの取得:悪い置換を。
eval
に戻らずに私の目標を達成する方法はありますか?