2017-01-17 10 views
1

私はzshでうまく動作するこの機能を持っていますが、私はそれを魚のシェルに変換したいので、動作させることができません。魚の構文はzshの異なるためまずこのzsh関数をfishシェルに変換するにはどうすればよいですか?

function ogf() { 
    echo "Cloning, your editor will open when clone has completed..." 
    source <(TARGET_DIRECTORY=~/students EDITOR=$EDITOR clone_git_file -ts "$1") 
} 
+0

あなたは私たちにどのようなソリューションあなた」を示さなければなりません私は試しました。 –

答えて

2

は、あなたもsourceにそれをclone_git_fileの出力を変更する必要があります。

clone_git_fileのようなものであれば、例えば:

#!/bin/bash 
echo "FOO=$TARGET_DIRECTORY" 
echo "BAR=$2" 

あなたは魚の構文にそれを変更する必要があります。

#!/bin/bash 
echo "set -gx FOO $TARGET_DIRECTORY" 
echo "set -gx BAR $2" 

が今ここにogf()機能だ、と魚のサンプルコード:

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" 

は魚でこのコードを実行すると、出力は次のようになります。

FOO is /home/MY_USER/students 
BAR is MY_ARGUMENT 
+0

ニースの答え。強調するために、 'env'と' psub'の使用に注意してください。 –

+0

ありがとう、私は今日試してみて、それが動作する限り答えを受け入れます! – Brandon

+0

sh/bash/zsh変数代入文を有効な魚構文に出力するスクリプトを使いやすくするための 'bass'プラグインもあります:https://github.com/edc/bass –

関連する問題