クリップボードの内容を表示せずにzshからクリップボードの内容を取得して評価できるようにしたいです。
export FOO=BAR
export BAR=BIZ
export BAZ=FOO
頑張った
function aws-eval-clipboard {
eval | $(pbpaste)
}
私たちは本当に近づいたと思いますか?しかし、私は理解しています
zsh: no such file or directory: export
インストールが必要な可能性がある他のコマンドを使用するために完全にオープンです。
答え1
むしろ次のようになります。
eval -- "$(pbpaste)"
または:
pbpaste | source /dev/stdin
eval
引数の空白に関連付けられたシェルコードの結果を評価します。したがって、ここではpbpaste
with コマンド replacement の出力を取得し、分割されないように引用$(...)
符を入れて引数として渡しますeval
(--
引数が次から始まる場合、前の引数はオプションの終わりを示します-
)。
source
最初の引数として渡されたファイルに格納されているシェルコードを評価します。を使用して、source /dev/stdin
標準入力から読み取ることができるコードを評価するように指示します。この場合、標準入力はパイプで、pbpaste
もう一方の端に出力があります。
ではeval | $(pbpaste)
、パイプで接続された2つのコマンドを実行しています。最初の項目eval
にはパラメータがないため、何も計算しないため、パイプには何も印刷されません。 2番目は出力を取得してpbpaste
分割し、単純なコマンドの結果単語を生成することで$IFS
構成されます。
表示されたコードを使用すると、コマンドが、、、、をexport
引数で実行することになるので、この場合にも機能します(該当、、変数はエクスポートされますが変数もエクスポートします)。発生したエラーは、対応する特定の入力として説明できません。FOO=BAR
export
BAR=BIZ
export
BAZ=FOO
FOO
BAR
BAZ
export