On 2023-03-10 06:59, Ken Brown via Cygwin wrote:
On 3/10/2023 8:47 AM, Markus Becker via Cygwin wrote:
I am quite an newby in Cygwin scripting and encountered several execution
issues with bash scripts. For example, when i try to execute the following
simple scriptfile "skript1.sh":
# This is a testscript
Statement="This is the testscript number 3"
FILE="home/mbecker/Secure_Copy_Beispiel.txt"
ls -l $FILE
echo $Statement
echo The file is $FILE
i got these results:
$ ./skript1.sh
ls: cannot access 'home/mbecker/Secure_Copy_Beispiel.txt'$'\r\r': No such
                                                             ^^^^^
file or directory
This is the testscript number 3
The file is home/mbecker/Secure_Copy_Beispiel.txt
or another results from a different script:
$ ./skript7.sh
./skript7.sh: line 3: $'clear\r': command not found
                                ^^^
Dr▒cken sie beliebige Tasten und dann return
': not a valid identifierd: `TASTE
These are just two of several issues coming up with bash scripting in
Cygwin. Maybe this is merely a corse problem with my platform
understanding. But why is Cygwin calling errors when performing standard
Linux bash commands? Is it due to a different syntax? Or is it even simpler?

It looks like your scripts have CRLF line endings.

Utilities such as coreutils, gawk, grep, sed, etc. Cygwin packages had Cygwin tweaks removed in 2017 to be compatible with Linux and other platforms in handling '\r' before newlines, except for the single exception of Cygwin text mounts, where '\r' may be stripped if a program opens a file from that mount in text "t" mode, and may be added on writes to a file in text "t" mode on a text mount:

        https://www.cygwin.com/cygwin-ug-net/using-textbinary.html

discussions:

        https://cygwin.com/legacy-ml/cygwin/2017-02/msg00152.html
        https://cygwin.com/legacy-ml/cygwin/2017-02/msg00188.html
        https://cygwin.com/legacy-ml/cygwin/2017-02/msg00189.html

Install package dos2unix which conveniently strips the offending junk from your scripts and files e.g.

        d2u -k skript*.sh

Install and use Cygwin editors and utilities, or check editor and utility settings to ensure they are not set to behave like Windows e.g. gvim set fileformat=unix termencoding=utf-8 fileencoding=utf-8 in your ~/.gvimrc ~/.vimrc ~/.virc ~/.exrc; emacs (set-buffer-file-coding-system 'mule-utf-8-unix) in ~/.emacs, type C-x C-q C-m f mule-utf-8-unix, or do the equivalent in more sophisticated initializations (auto)detecting file type, encoding, and format; for git config --global core.autocrlf = input, see:

https://stackoverflow.com/questions/3206843/how-line-ending-conversions-work-with-git-core-autocrlf-between-different-operat

--
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer     but when there is no more to cut
                                -- Antoine de Saint-Exupéry

--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to