2016-03-22 10 views
0

上のGit Bashの中で特定の機能をインポートする:エラーは、私はできるだけ早く私はbashシェルにログインすると、この珍しいと迷惑なエラーを取得していますシェルログイン

sh: PATHRE: line 4: syntax error near unexpected token `(' 
sh: PATHRE: line 4: ` echo c:\Users\Chris Ross\bin;.;C:\RailsInstaller\Git\local\bin;C:\RailsInstaller\Git\mingw\bin;C:\RailsInstaller\Git\bin;c:\ImageMagick-6.9.2-Q16;c:\Python27\;c:\Python27\Scripts;c:\Program Files (x86)\Intel\iCLS Client\;c:\Program Files\Intel\iCLS Client\;c:\WINDOWS\system32;c:\WINDOWS;c:\WINDOWS\System32\Wbem;c:\WINDOWS\System32\WindowsPowerShell\v1.0\;c:\Program Files\Intel\Intel(R) Management Engine Components\DAL;c:\Program Files\Intel\Intel(R) Management Engine Components\IPT;c:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;c:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;c:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;c:\Program Files\Intel\WiFi\bin\;c:\Program Files\Common Files\Intel\WirelessCommon\;c:\Program Files (x86)\PDFtk Server\bin\;c:\RailsInstaller\Ruby1.9.3\bin\;c:\Program Files (x86)\Shoes;c:\Program Files (x86)\QuickTime\QTSystem\;c:\xampp\apache\bin;c:\xampp\php;c:\xampp\mysql\bin\;c:\Program Files\nodejs\;c:\Users\Chris Ross\AppData\Roaming\npm;c:\Program Files\Sublime Text 3\;c:\utils\ffmpeg\bin;c:\Program Files (x86)\GnuWin32\bin\;c:\utils;c:\Python27\;c:\Python27\Scripts;c:\Program Files\ImageMagick-6.9.2-Q16;c:\Program Files (x86)\PDFtk Server\bin;c:\RailsInstaller\Ruby1.9.3\bin;c:\utils\wget-1.11.4-1-bin\bin;c:\utils\iview441_x64;c:\Program Files\Tracker Software\PDF Editor\;c:\Program Files\processing-2.2.1;c:\Program Files\Audacity;c:\utils\Calibre Portable\Calibre;c:\Users\Chris Ross\dotfiles\bin | tr ':' '\n' | while read x; do' 
sh: error importing function definition for `PATHRE' 

Chris [email protected] ~ 

これが唯一の機能自体が、以下の機能に影響を与えますエラーなしで期待どおりに動作:

pathre() 
{ 
    local idx=0; 
    local regex='.*'; 
    [[ ! -z "${1}" ]] && regex="${1}"; 
    echo "${PATH}" | tr ':' '\n' | while read -r x; do 
     ((idx+=1)); 
     echo "${idx} ${x}"; 
    done | grep -i "${regex}" 
} 

エラーが~/.bashrcによって供給または~/.bashrcに配置されているファイル内に位置するかどうかを生じます。

この関数は、単にパスセパレータを改行に置き換えて繰り返し処理し、次に部分文字列に対してgrepします。それは次のようになります。

$ pathre 
1 /c/Users/Chris Ross/bin 
2 . 
3 /usr/local/bin 
[etc...] 

とで、args:

$ pathre dot 
51 /c/Users/Chris Ross/dotfiles/bin 
67 /c/Users/Chris Ross/dotfiles/bin 

私はRailsInstallerパッケージを使ってインストールしたWindowsの10マシン上でコンソール2内のGit Bashのを使用しています。

$ bash --version 
GNU bash, version 3.1.20(4)-release (i686-pc-msys) 
Copyright (C) 2005 Free Software Foundation, Inc. 

ありがとうございます。

答えて

0

問題の原因となっているコードは正確ですか?それはそれのように見えないので。

エラーはPATHREと表示され、コードにはpathreが使用されています。

エラーコードは、実行中のコマンドでパスが拡張されていることを示しています(実際にはが実際にコマンドを実行している可能性が高いです)。そして、パスの値が問題です。

PATHRE() 
{ 
    local idx=0; 
    local regex='.*'; 
    [[ ! -z "${1}" ]] && regex="${1}"; 
    ${PATH} | tr ':' '\n' | while read -r x; do 
     ((idx+=1)); 
     echo "${idx} ${x}"; 
    done | grep -i "${regex}" 
} 

そのような場合、あなたはおそらく、コードスニペット内および/またはPATHREを見つけるを使用して、実際にを問題を解決することができます:私はあなたのコードは実際にはもっとこのようになります期待してこのように

コードと、それはどこかにおそらくあるので、(それを削除し、あなたはそれを見ていません。これはかなり下手に書かれた関数であることを起こると

これはawkです。

pathre() { 
    awk -v RS=: -v re="$1" '!re || $0 ~ re {print NR,$0}' <<<"$PATH" 
} 
+0

書き直してくれてありがとう(私は全くawkを知らない)。 – cjross

+0

エラーメッセージは、関数定義を変更しても実際には変更されていないようですので、別の関数がソース/どこかに書かれているのが正しいかどうかを調べる必要があります。 – cjross

関連する問題