zsh を使っています。
一時的に変数に値を代入して使用する方法を探しています。
例えば、

p="tmp" ; echo $p $p

を実行すると、

tmp tmp

と出力されますが、再び echo $p を実行しても、まだ

tmp

と表示されてしまいます。
つまり、定義した変数 p が残り続けます。
これを残らないようにするには、

p="tmp" ; echo $p $p ; unset p

とするしかないでしょうか。
初めから、このコマンド内でのみ有効だと定義する方法は無いのでしょうか。