2017-12-13 11 views
0

SHサブシェルでエラーがスローされます。コマンドを実行し、いくつかのコマンドを実行しているときにしばらく機能が正常に動作します機能はbashで動作しますが、私は私のbashプロファイルに機能を追加しました

function git-checkout-origin { git checkout -B $1 origin/$1; } 
export -f git-checkout-origin 

が、everyonceをシェルで私はこのエラーを取得する:

sh: error importing function definition for `git-checkout-origin' 

SH & bashが機能するために異なる構文を使用する可能性が高いと思われる、または関数がSHとそうでない場合は互換性がないことが、私は、これを引き起こしているものはかなりよく分かりません。

私はサブシェルに関数を必要としませんが、壊れた関数は実際には何かを破るものではありませんが、私はエラーを取り除きたいと思います。

+1

私はこのコードをhttp://shellcheck.net/に#!/ bin/shのシバンを入れておけば、あなたの答えで特定された問題。 –

答えて

0

それは私の関数がSHに対応していませんでした2つの方法があることが判明:

+0

また、 'sh'は、エクスポートされた関数をまったくサポートすることは保証されていません。あなたのshが 'ダッシュ'または '灰 'によって提供されている場合、それはしません。 –

+1

ところで、引用符を追加することを検討してください: 'git_checkout_origin(){git checkout -B" $ 1 "" origin/$ 1 "; } '奇妙な' IFS'値(または空白を含むか、glob式として解釈できる引数を持つデフォルトのIFS値)で望ましくない動作をしないようにします。 –

+0

... '/ bin/sh'の非対話的な子プロセスインスタンスで関数を利用できるようにするには、ファイルへの定義を入れ、環境変数' ENV'をエクスポートすることですそのファイルの名前 –

関連する問題