如何将此zsh函数转换为fish shell?

如何将此zsh函数转换为fish shell?,zsh,fish,Zsh,Fish,我有这个函数,它在zsh中工作得很好,但我想把它转换成鱼壳,但我无法让它工作 function ogf () { echo "Cloning, your editor will open when clone has completed..." source <(TARGET_DIRECTORY=~/students EDITOR=$EDITOR clone_git_file -ts "$1") } 函数ogf(){ echo“克隆完成后,编辑器将打开…” source首先,由于

我有这个函数,它在zsh中工作得很好,但我想把它转换成鱼壳,但我无法让它工作

function ogf () {
  echo "Cloning, your editor will open when clone has completed..."
  source <(TARGET_DIRECTORY=~/students EDITOR=$EDITOR clone_git_file -ts "$1")
}
函数ogf(){
echo“克隆完成后,编辑器将打开…”

source首先,由于fish的语法与zsh不同,您还必须将
clone\u git\u文件的输出更改为
source
it

例如,如果
clone\u git\u file
类似于:

#!/bin/bash
echo "FOO=$TARGET_DIRECTORY"
echo "BAR=$2"
您必须将其更改为fish语法

#!/bin/bash
echo "set -gx FOO $TARGET_DIRECTORY"
echo "set -gx BAR $2"
下面是
ogf()
函数和fish的示例代码:

function ogf
  echo "Cloning, your editor will open when clone has completed..."
  source (env TARGET_DIRECTORY=~/students EDITOR=$EDITOR clone_git_file -ts $argv[1] | psub)
end

ogf MY_ARGUMENT
echo "FOO is $FOO"
echo "BAR is $BAR"
使用fish运行此代码时,输出为:

FOO is /home/MY_USER/students
BAR is MY_ARGUMENT

回答很好。要强调的是,请注意
env
psub
的使用。谢谢你,我今天将尝试一下,只要答案有效,我就接受它!还有
bass
插件,它可以轻松地使用脚本,将sh/bash/zsh变量赋值语句输出到有效的fish语法中:谢谢你rtis!我以前从未见过
psub
。为什么不评估输出?您应该向我们展示您尝试过的解决方案。