delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/06/02/22:48:45

From: pjfarley AT dorsai DOT org (Peter J. Farley III)
Newsgroups: comp.os.msdos.djgpp
Subject: /dev/null BASH bug?
Date: Mon, 02 Jun 1997 21:00:43 GMT
Organization: The Dorsai Embassy, Inc.
Lines: 70
Message-ID: <33932f7d.19066230@news.dorsai.org>
NNTP-Posting-Host: pjfarley.ppp1.dorsai.org
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

I think I have found a bug (difference?) in the way DJGPP libc treats
/dev/null under COMMAND.COM and the way it treats it under BASH
(Version 1.14.7, EXE dated 4/19/97, 10:03PM).  Program versions I am
running are as follows:

bash.exe$ grep -V
GNU grep version 2.0
usage: grep [-[[AB] ]<num>] [-[CEFGVchilnqsvwxUu]] [-[ef]] <expr>
[<files...>]
bash.exe$ bash -version
GNU bash, version 1.14.7(1) r3 w/multibyte extension
bash.exe$

Here is a set of pairs of grep commands that should work; all but the
last pair fail to work as I expect under bash.  In each pair of grep
commands, I would expect the first to return a status of "1" (the
string does *not* exist in the file), and the second to return a
status of "0" (the string *does* exist in the file).  Instead, the
various encodings of "/dev/null" cause failure even when I would
expect success.  Following the listing of the file "tdevnull" is the
results of running it under bash.

-------- file tdevnull -----------
#! /bin/sh
echo "grimblepritz" >grimble
grep blurfldyick grimble >/dev/null 2>&1
echo "1st grep returned $?"
grep grimblepritz grimble >/dev/null 2>&1
echo "2nd grep returned $?"
grep blurfldyick grimble >/dev/null 2>/dev/null
echo "3rd grep returned $?"
grep grimblepritz grimble >/dev/null 2>/dev/null
echo "4th grep returned $?"
grep blurfldyick grimble &>/dev/null
echo "5th grep returned $?"
grep grimblepritz grimble &>/dev/null
echo "6th grep returned $?"
grep blurfldyick grimble &>nul
echo "7th grep returned $?"
grep grimblepritz grimble &>nul
echo "8th grep returned $?"
rm -f grimble

---------- execute file tdevnull under bash ------------

bash.exe$ ./tdevnull
./tdevnull: /dev/null: No such file or directory (ENOENT)
1st grep returned 1
./tdevnull: /dev/null: No such file or directory (ENOENT)
2nd grep returned 1
./tdevnull: /dev/null: No such file or directory (ENOENT)
3rd grep returned 1
./tdevnull: /dev/null: No such file or directory (ENOENT)
4th grep returned 1
./tdevnull: /dev/null: No such file or directory (ENOENT)
5th grep returned 1
./tdevnull: /dev/null: No such file or directory (ENOENT)
6th grep returned 1
7th grep returned 1
8th grep returned 0
bash.exe$

--------------- end of execution --------------------

Am I missing something here, or is this a real bug?

TIA for any help or info you can provide.

----------------------------------------------------
Peter J. Farley III (pjfarley AT dorsai DOT org)

- Raw text -


  webmaster     delorie software   privacy  
  Copyright 2019   by DJ Delorie     Updated Jul 2019