The UNIX and Linux Forums  
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.

Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Dummies Questions & Answers
.
google unix.com



UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !!

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
editor mode in cygwin himvat Shell Programming and Scripting 5 12-16-2008 04:45 AM
cygwin vi editor mostafamagdy UNIX for Dummies Questions & Answers 1 11-19-2008 08:07 AM
vi editor in cygwin arparwan UNIX for Dummies Questions & Answers 1 01-07-2008 04:23 PM
E:348 no string under cursor error comes in vi editor in cygwin mrityunjay22 Shell Programming and Scripting 0 12-25-2007 09:52 AM
A beginner for cygwin simple question zhshqzyc UNIX for Dummies Questions & Answers 1 08-06-2007 02:27 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Powered by Powered by Google
 
LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 02-22-2009
oxysep oxysep is offline
Registered User
  
 

Join Date: Feb 2009
Posts: 2
Lightbulb tip: Simple script won't run in cygwin - vim editor involved

I ran into this issue and thanks to various postings in various forums, was
able to figure out the solution but didn't see one posting that laid the
whole issue out cleanly. So thought the following might help others ...

------------------------------------------------------------------------
The Problem
You use vim to create a simple shell script in a cygwin directory but the
script doesn't run properly. Example:

A script called test.sh:
#! /bin/sh
ls
echo "++++++"
cat a1.txt

produces this when run:
$ ./test.sh
./test.sh: line 2: $'ls\r': command not found
++++++
: No such file or directory

------------------------------------------------------------------------
The Solution
The problem is that vim has written the file in "DOS mode", which puts
an extra (as far as cygwin is concerned) carriage return (aka: control-M,
^M, \r) at the end of each line.

You can see that using the "-v" option with cat:
$ cat -v test.sh
#! /bin/sh^M
ls^M
echo "++++++"^M
cat a1.txt^M

The solution is to bring the file back into vi, set vim into binary mode with
the ":se binary" command, then save the file. Now, "cat -v" shows that
the carriage returns have been removed:
$ cat -v test.sh
#! /bin/sh
ls
echo "++++++"
cat a1.txt

And the program runs just fine:
$ ./test.sh
760log2trk.pl a1.txt spot.gpxcon.pl.rc
760log2trk.pl.rc a2.txt spot.gpxcon.tailers.kml
++++++
This is a file with a
few lines of text
in it.

------------------------------------------------------------------------
Note 1: The first line of the script file is common practice for a Unix script,
but isn't really required for the script to work in cygwin.

Note 2: Running the script by putting "./" in front of it is required in
cygwin as long as you don't have "." (the current directory) in the search
path. By default, cygwin doesn't include the current directory when looking
for commands. And for security reasons, it's not a good practice to put .
in your search path.

Note 3: Having saved the file in binary mode, you don't need to worry
about that setting for future edits of the file. vim will recognize the nature
of the file when it opens it and will keep it in that mode, so lines added
to the file will not be written with the carriage return. (vim tells you
that the file is in binary mode by putting "[unix]" after the file name
at the bottom of the window.)

Last edited by otheus; 03-08-2009 at 11:23 AM.. Reason: added lightbulb icon, edited subject
  #2 (permalink)  
Old 03-05-2009
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderator ala Mode
  
 

Join Date: Feb 2007
Location: Innsbruck, Austria
Posts: 1,884
Wait, do you have a question, or is this a cool tip you are sharing with the world?
  #3 (permalink)  
Old 03-07-2009
oxysep oxysep is offline
Registered User
  
 

Join Date: Feb 2009
Posts: 2
No question, just a tip

Nope, not a question, just a tip (or set of tips). Sorry for the confusion.
Closed Thread

Bookmarks

Tags
cool tips, cygwin, script, vim

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT -4. The time now is 12:02 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0