2017-07-12 1 views
0

mein NodeJS Skript kann nicht funktionieren gut bei msys2 Shellwas ist falsch auf meiner msys2? kann nicht dirname bei bash

etwas worng make $ basedir immer leer geworden

als Fall dieser Fehler Error: Cannot find module 'C:\msys64\node_modules\gulp\bin\gulp.js'

wie kann ich diese bekommen beheben ?


msys2-bug-Test

#!/bin/sh 
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 

echo \$0 = $0 

echo 
echo \$\(dirname \"\$\(echo \"\$0\" \| sed -e \'s,\\,/,g\'\)\"\) 
echo 

echo \"$basedir\" should eq $(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 
echo $(echo "$0" | sed -e 's,\\,/,g') 

ausgeben wird

$ msys2-bug-test 
$0 = /c/Users/USER/AppData/Roaming/npm/msys2-bug-test 

$(dirname "$(echo "$0" | sed -e 's,\,/,g')") 

"" should eq . 
/c/Users/USER/AppData/Roaming/npm/msys2-bug-test 

Antwort

0

ersetzen:

basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 

von:

basedir=$(dirname $(echo "$0" | sed -e 's,\\,/,g')) 

Und:

echo \"$basedir\" should eq $(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 
echo $(echo "$0" | sed -e 's,\\,/,g') 

von:

echo \"$basedir\" should eq $(dirname $(echo "$0" | sed -e 's,\\,/,g')) 
echo $(echo "$0" | sed -e 's,\\,/,g')