X-Recipient: archive-cygwin AT delorie DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 33C19385480D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1678473828; bh=/NNLEUv18oJiqQjIgH2yQmn7PJpEJEybdBG+ywPuuHM=; h=References:In-Reply-To:Date:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=Xck7aixgu1QqOAsoJV1LRWGjlCE1AtsNWNpdbpJ1ONeUEh7nIRffFjpevYpsS4n+O ylWxv0bRkAwXcNFjpQKZ5kMOCF4O4CGC/HarZBR24PsmwGqFcmf65FKuZrf5UyU565 t0WUx8os1UPJI1xd7cPbzNd4NryHAgE+kSPXIQZ4= X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0E946385840A X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678473757; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5G5l70pTNUkugzU0HDCuQCyjVkV7rhYgcEFljSOuaG0=; b=OcybL54o389TaH+cszSxLwAM+F3Vdsd83g0N/tUqZ6ppZTMe0jpPZc9E0TUe7xH4iW 8Hf7GDFyS1hnCqPSVDUz2lfexndf/4580AA0bt6QVcEekBzRs5wCRory2BCV8kOAqOBV /70ujUf6CwAMTReRGeiFZ0Do1dLNKnHE7N8ZeaZxGQp2g9jPt1Om4aQ/3hveIx27G39X +Y1GpPsFK4PL0ph1svzoG9YPUQ7hWG3lQyFnhCl7dwpVPxreG5vNxQOxEogRkaz0J7tX AW7oahmhAoOWNzzN39hy9DN5t5nZgzu7uZN4qd5hfAS/k9QdVYaN4i8LJ2pPEKO6+/jU pv5g== X-Gm-Message-State: AO0yUKVu8MqoZNBXiBKxF9MAFGrTnp/wtCJxtML0wXqsKf9VMdyXiYvc r3hVwyFpEEGJqdiHJT9ZpYqM2vJh3Aa3wUo2g5tKutkUZbLKVTJvQ/A= X-Google-Smtp-Source: AK7set+kI7qK5b+utQzfLCcQnD4LY9r0FwhxT/DjrxxO4jY57Z6ZU7oORzDNyVbIC7PE70Ii9h08O4DWO9khGPoVI8I= X-Received: by 2002:a17:903:26d6:b0:19b:fe3:c948 with SMTP id jg22-20020a17090326d600b0019b0fe3c948mr9863821plb.12.1678473757089; Fri, 10 Mar 2023 10:42:37 -0800 (PST) MIME-Version: 1.0 References: <63cccff3-9487-3588-5dd8-e49499882280 AT cornell DOT edu> In-Reply-To: Date: Fri, 10 Mar 2023 10:42:25 -0800 Message-ID: Subject: Re: General scripting issues vs. Linux To: cygwin AT cygwin DOT com X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.29 List-Id: General Cygwin discussions and problem reports List-Archive: List-Post: List-Help: List-Subscribe: , From: Backwoods BC via Cygwin Reply-To: Backwoods BC Content-Type: text/plain; charset="utf-8" Sender: "Cygwin" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 32AIiCg9010932 On Fri, Mar 10, 2023 at 8:16 AM Brian Inglis via Cygwin wrote: > > 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 As a matter of expediency, I always pass files through '| tr -d '\r' |' when reading them. This is harmless on Linux and you don't have to worry whether or not your target system has 'd2u' installed since I believe that 'tr' is part of all base installations. It also means you don't have to worry about whether or not a particular program handles '\r' automagically. I find that it is also a good idea to save all script files as UTF-8 so that they can handle Windows filenames with emojis and such in them when explicitly named in the script. -- 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