Reputation: 22403
I am running a shell script in Cygwin, and the files in the shell script aren't showing up, even though they are definitely in the same directory as the shell script.
Cygwin command:
$ bash `cygpath --unix "C:\Users\myName\Documents\projectFile\dygraphsMaster\generate-combined.sh"`
Shell script (from dygraphs.com):
#!/bin/bash
# Generates a single JS file that's easier to include.
GetSources () {
# This list needs to be kept in sync w/ the one in dygraph-dev.js
# and the one in jsTestDriver.conf. Order matters, except for the plugins.
for F in \
dashed-canvas.js \
dygraph-options.js \
dygraph-layout.js \
dygraph-canvas.js \
dygraph.js \
dygraph-utils.js \
dygraph-gviz.js \
dygraph-interaction-model.js \
dygraph-tickers.js \
dygraph-plugin-base.js \
plugins/*.js \
dygraph-plugin-install.js \
datahandler/datahandler.js \
datahandler/default.js \
datahandler/default-fractions.js \
datahandler/bars.js \
datahandler/bars-custom.js \
datahandler/bars-error.js \
datahandler/bars-fractions.js
do
echo "$F"
done
}
# Pack all the JS together.
CatSources () {
GetSources \
| xargs cat \
| perl -ne 'print unless m,REMOVE_FOR_COMBINED,..m,/REMOVE_FOR_COMBINED,'
}
Copyright () {
echo '/*! @license Copyright 2014 Dan Vanderkam ([email protected]) MIT-licensed (http://opensource.org/licenses/MIT) */'
}
CatCompressed () {
Copyright
CatSources \
| grep -v '"use strict";' \
| node_modules/uglify-js/bin/uglifyjs -c warnings=false -m
}
ACTION="${1:-update}"
case "$ACTION" in
ls)
GetSources
;;
cat)
Copyright
CatSources
;;
compress*|cat_compress*)
CatCompressed
;;
update)
CatCompressed > dygraph-combined.js
chmod a+r dygraph-combined.js
;;
*)
echo >&2 "Unknown action '$ACTION'"
exit 1
;;
esac
Upvotes: 4
Views: 1459
Reputation: 663
Often this is related to the EOL characters.
Try:
dos2unix generate-combined.sh
Upvotes: 0
Reputation: 11
In which directory are you when executing this? In the same folder as the script itself?
Can you try this:
cd /cygdrive/c/Users/myName/Documents/projectFile/dygraphsMaster/
./generate-combined.sh
Upvotes: 1
Reputation: 360872
You're using backslashes in a unix context - they're going to be treated as escapes.
e.g.
marc@host ~
$ ls c:\users
ls: cannot access c:users: No such file or directory
^---look, mom! No slashes!
marc@host ~
$ ls c:\\users
adm1n Default User DefaultAppPool LocalAdm1n Public
etc...
So...
$ bash `cygpath --unix "C:\\Users\\myName\\etc...
Upvotes: 0