バッシュから:
foo_a=1
foo_b=2
declare -p ${!foo_*}
出力:
declare -- foo_a="1"
declare -- foo_b="2"
私は何をすべきですか?扱いにくい?
上記の内容を貼り付けませんか?扱いにくい変数設定もできませんか?貼り付けたすべてのコードが成功しない場合は、コードを貼り付けても効果はありませんか?それは問題ですか?
ベストアンサー1
次に始まるすべてのパラメータを印刷する方法
foo
:declare -p ${(Mk)parameters:#foo*}
parameters
すべての変数は連想配列に格納されるため、(k)
すべてのキーを印刷してパターンを検索するだけで十分ですfoo*
。このフラグは、(M)
一致しない要素を削除するために存在します。出力:
typeset foo_a=1 typeset foo_b=2
(注、
declare
と同じtypeset
)。
最近導入された機能のため、貼り付けは期待どおりに機能しません。かっこ内に貼り付ける:
zle_bracketed_paste
多くの端末エミュレータには、テキストを正常に入力するのではなく、端末に貼り付けるときにアプリケーションがそれを認識できるようにする機能があります。 ZLEの場合、これはエディタコマンドを呼び出さなくてもタブや改行などの特殊文字を挿入できることを意味します。また、貼り付けたテキストは単一のUNDOイベントを形成し、その領域が有効になっている場合はその領域を置き換えます。
これら2つの要素の配列には、機能を有効または無効にするために使用される端末エスケープシーケンスが含まれています。これらのエスケープシーケンスは、ZLEが有効になっているときに角かっこ貼り付けを有効にし、他のときに無効にするために使用されます。このパラメータを設定解除すると、括弧内の貼り付けは無効になります。
気に入らない場合は、設定を解除してください。
unset zle_bracketed_paste