コマンドエイリアスを実行し、zsh関数で文字列変数として保存する方法は?

コマンドエイリアスを実行し、zsh関数で文字列変数として保存する方法は?

機能があります。

fz(){file=$(find | fzf) && echo $file && read order && $("$order" "$file")}

私の.zshrz。これにより、ファイルを呼び出した場所に基づいてサブディレクトリ内の任意の場所でファイルを検索し、入力で指定されたコマンドをそのファイルに適用できます。

1つの小さな問題があります。関数が期待どおりに動作している間($order同じファイルで指定されたエイリアスではない場合.zshrc)、エイリアスを使用すると、「コマンドが見つかりません」というメッセージが表示されます。

zsh関数で変数として保存されたエイリアスを使用する方法はありますか?

ベストアンサー1

eval代わりに、以下を使用する必要があります$( … )

fz() {
  file=$( find | fzf )
  echo $file
  read order
  eval "$order $file"
}

おすすめ記事