Berkeley CSUA MOTD:Entry 32530
Berkeley CSUA MOTD
 
WIKI | FAQ | Tech FAQ
http://csua.com/feed/
2025/04/07 [General] UID:1000 Activity:popular
4/7     

2004/7/28 [Computer/SW/Unix] UID:32530 Activity:high
7/28    bash v3.0 is out: http://tinyurl.com/436y2
        \_ Ah, a new version of a crappy shell.  Thanks Linux!
           \_ It comes standard on most linux distros so it must be the best!
                \_ It has pretty colors!
           \_ While I agree that bash might be overkill scripting, some of
              its features do greatly enhance usability (unicode filename
              handling, auto completion of filenames w/ spaces, &c.) Some of
              these features you can get in ksh or hack into pdksh (a la
              OpenBSD), but for most people its just easier to use bash.
              \_ tcsh completes filenames with spaces. i don't know nething
                 about unicode but it's mentioned in the man page. fuck bash.
                 \_ Yes but tcsh uses the crappy csh scripting style. Some
                    of us do use the while/do/done for/do/done, if/fi &c.
                    syntax on the cli.
                    \_ Use the right tool for the job!  You use tcsh for CLI
                       and perl for scripting.  Anything more than a few
                       lines of tcsh belongs in perl or some other real
                       scripting langauge.  Bash should die.  It's a
                       bastardized POS.
2025/04/07 [General] UID:1000 Activity:popular
4/7     

You may also be interested in these entries...
2012/9/20-11/7 [Computer/SW/Unix, Finance/Investment] UID:54482 Activity:nil
9/20    How do I change my shell? chsh says "Cannot change ID to root."
        \_ /usr/bin/chsh does not have the SUID permission set. Without
           being set, it does not successfully change a user's shell.
           Typical newbie sys admin (on soda)
           \_ Actually, it does: -rwsr-xr-x 1 root root 37552 Feb 15  2011 /usr/bin/chsh
	...
2012/9/24-11/7 [Computer/SW/Languages, Computer/SW/Unix] UID:54484 Activity:nil
9/24    How come changing my shell using ldapmodify (chsh doesn't work) doesn't
        work either? ldapsearch and getent show the new shell but I still get
        the old shell on login.
        \_ Scratch that, it magically took my new shell now. WTF?
           \_ probably nscd(8)
	...
2012/4/27-6/4 [Computer/SW/Languages/Misc, Computer/SW/Unix] UID:54372 Activity:nil
4/27    I wrote a little shell script to collect iostat data:
        #!/bin/bash
        DATE=`date +%m%d`
        DATADIR=/var/tmp/user
        OUTPUTFILE=$DATADIR/$DATE.out
        while true
	...
2011/10/26-12/6 [Computer/SW/Unix] UID:54202 Activity:nil
10/24  What's an easy way to see if say column 3 of a file matches a list of
       expressions in a file? Basically I want to combine "grep -f <file>"
       to store the patterns and awk's $3 ~ /(AAA|BBB|CCC)/ ... I realize
       I can do this with "egrep -f " and use regexp instead of strings, but
       was wondering if there was some magic way to do this.
       \_ UNIX has no magic. Make a shell script to produce the ask or egrep
	...
2011/5/19-7/13 [Computer/SW/Languages/Misc] UID:54115 Activity:nil
5/19    If script A runs, and calls script B ..... is it possible for me to exit\
        script A based on results of script B and not continue?
        \_ assume any shell
        \_ Yes.
           \_ without passing the result to some stupid temp file?
              \_ It sounds like you want "scriptb || exit", which will run
	...
2009/12/9-2010/1/13 [Computer/SW/Unix] UID:53586 Activity:nil
12/8    Is there a bash equivalent to tcsh's history-search-backward ?
        \_ There's something similar called... history-search-backward. It
           is a bit more limited, in that it only searches for strings and
           not glob patterns. You may find reverse-i-search to be useful also.
	...
Cache (8192 bytes)
tinyurl.com/436y2 -> groups.google.com/groups?selm=ce69qe%24sf5%241%40eeyore.INS.cwru.edu&output=gplain
This tar file does not include the formatted documentation (postscript, dvi, html, and nroffed versions of the manual pages); gz When unpacking the documentation, make sure to extract the tar file in the bash-30 source directory. Installation ============ Please read the README file first. Installation instructions are provided in the INSTALL file. New Features ============ This is the third major release of bash. Bash-30 provides a number of bug fixes and cleanups to the features introduced in the previous several releases. More improvements and speedups to the multibyte character support are present. Several bug fixes for POSIX compliance came in from Apple; A significant change is the further internationalization of the shell: the GNU libintl library has been integrated, every shell message has been marked for possible translation into other languages, and the standard GNU framework for incorporating such translations is in place. Support for the bash debugger (a separate project) has been integrated. Read the file NEWS in the bash-30 distribution for a complete description of the new features. y} form, producing sequences of digits or characters o Timestamps are now kept with history entries, with an option to save and restore them from the history file; Only readline-50 and later versions are able to provide all of the symbols that bash-30 requires; earlier versions of the Readline library will not work correctly. Readline ======== Also available is a new release of the standalone readline library, version 50, with its own configuration scripts and Makefiles. gz Make sure to install the patches using patch -p1 < patch-file' from within a readline-43 source directory. The formatted Readline documentation is included in the readline distribution tar file. A separate announcement listing the changes in Readline is being distributed. b Changed posix mode behavior so that an error in a variable assignment preceding a special builtin causes a non-interactive shell to exit. c Change the directory expansion portion of the completion code to not expand embedded command substitutions if the directory name appears in the file system. d Fixed a problem that caused bash -r' to turn on restrictions before reading the startup files. e Fixed a problem with the default operation of the umask' builtin. b Fixed a problem with EOF detection when using rl_event_hook. c Fixed a problem with the vi mode p' and P' commands ignoring numeric arguments. c Fixed a bug that caused inappropriate word splitting when a variable was expanded within a double-quoted string that also included $@. d Fixed a bug that caused pwd' to not display anything in physical mode when the file system had changed underneath the shell. e Fixed a bug in the pre- and post- increment and decrement parsing in the expression evaluator that caused errors when the operands and corresponding operators were separated by whitespace. f Fixed a bug that caused history -p' to add an entry to the history list, counter to the documentation. h Fixed a bug that caused jobs to be put into the wrong process group under some circumstances after enabling job control with set -m'. i unalias' now returns failure if no alias name arguments are supplied. j Documented the characters not allowed to appear in an alias name. k $* is no longer expanded as if in double quotes when it appears in the body of a here document, as the SUS seems to require. l The bashbug' script now uses a directory in $TMPDIR for exclusive access rather than trying to guess how the underlying OS provides for secure temporary file creation. m Fixed a few problems with cd' and pwd' when asked to operate on pathnames longer than PATH_MAX characters. n Fixed a memory leak caused when creating multiple local array variables with identical names. o Fixed a problem with calls to getcwd() so that bash now operates better when the full pathname to the current directory is longer than PATH_MAX bytes. p The trap' builtin now reports an error if a single non-signal argument is specified. q Fixed a bug that caused umask' to not work correctly when presented with a mask of all 0s. r When getopts' reaches the end of options, OPTARG is unset, as POSIX appears to specify. s Interactive mode now depends on whether or not stdin and stderr are connected to a tty; b Improvements to the code that expands and displays prompt strings containing multibyte characters. d Fixed a bug in vi-mode that caused multi-digit count arguments to work incorrectly. e Fixed a problem in vi-mode that caused the last text modification command to not be remembered across different command lines. f Fixed problems with changing characters and changing case at the end of the line. b The historical behavior of trap' that allows a missing action' argument to cause each specified signal's handling to be reset to its default is now only supported when trap' is given a single non-option argument. b Fixed command substitution to run any exit trap defined in the command substitution before returning; c Fixes to process group synchronization code so that every child process attempts to set the terminal's process group; fixes some synchronization problems on Linux kernels that schedule the child to always run before the parent. d Fixed processing of octal and hex constants in printf builtin for POSIX2 compliance. e Fixed a couple of core dumps in the pattern removal code. f Fixes to the array subrange extraction code to deal better with sparse arrays. g Parser errors and other errors that result in the shell exiting now cause the exit trap to be run. h Change the command substitution completion functions to not append any closing quote, because it would be inserted a closing "" or ")". i Fix history initialization so assignments to $histchars made in startup files are honored. j If an exit trap does not contain a call to exit', the shell now uses the exit status of the last command executed before the trap as the exit status of the shell. k The parser now prompts with $PS2 if it reads a newline while parsing a compound array assignment statement. m Fixed a bug that caused return' executed in a trap command to make the shell think it was still running the trap. n Fixed the value of errno set by the pathname canonicalization functions. o Changed the grammar so that time' alone on a line times a null command rather than being a syntax error. p The pattern substitution coded no longer performs quote removal on the pattern before trying to match it, as the pattern removal functions do. q Fixed a bug that could cause core dumps when checking whether a quoted command name was being completed. r Fixes to the pattern removal and pattern replacement expansions to deal with multibyte characters better (and faster). t Fixed a bug that caused some key bindings set in an inputrc to be ignored at shell startup. u Fixed a bug that caused unsetting a local variable within a function to not work correctly. v Fixed a bug that caused invalid variables to be created when using read -a'. w Fixed a bug that caused "$@" to expand incorrectly when used as the right hand side of a parameter expansion such as ${word:="$@"} if the first character of $IFS was not a space. x Fixed a slight cosmetic problem when printing commands containing a >&word' redirection. y Fixed a problem that could cause here documents to not be created correctly if the system temporary directory did not allow writing. b Some changes to the display code to improve display and redisplay of multibyte characters. c Changes to speed up the multibyte character redisplay code. d Fixed a bug in the vi-mode E' command that caused it to skip over the last character of a word if invoked while point was on the word's next-to-last character. e Fixed a bug that could cause incorrect filename quoting when case-insensitive completion was enabled and the word being completed contained backslashes quoting word break characters. f Fixed a bug in redisplay triggered when the prompt string contains invisible characters. g Fixed some display (and other) bugs encountered in multibyte locales when a non-ascii character was the last character on a line. h Fixed ...