如果我想知道,zsh中是否存在变量v,我可以使用y_len = y.shape.num_elements()
res = tf.zeros((0,2))
for idx in range(y_len):
res = tf.concat([res, tf.reduce_mean(x[idx, :y[idx]], axis=0)[tf.newaxis]], axis=0)
。例如:
${+v}
输出 1 1 0 。
如果我想访问变量的内容,我将其NAME存储在变量v中,我可以使用u=xxx
v=
print ${+u} ${+v} ${+w}
来完成。例如:
${(P)v}
输出 xxx 。
现在我想结合两者:测试变量是否存在,但变量的名称存储在另一个变量中。我怎样才能做到这一点?例如:
a=xxx
b=a
print ${(P)b}
这是我的方法不起作用:
r=XXX
p=r
q=s
但是,我收到错误消息 zsh:bad substitution 。
有没有办法在不恢复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
的情况下实现目标?
答案 0 :(得分:2)
print ${(P)+p}
print ${(P)+q}
参数扩展标志的左括号需要在开括号之后立即跟随。此外,没有必要明确替换p
或q
,因为(P)
会照顾到这一点。不过,${(P)+${p}}
和${(P)+${q}}
也可以。