9 <td>Deprecated sample implementation of a bash debugger</td>
15 <td>Shell completion code</td>
21 <td>Example functions</td>
24 <td>./functions/array-stuff</td>
25 <td>Various array functions (ashift, array_sort, reverse).</td>
28 <td>./functions/array-to-string</td>
29 <td>Convert an array to a string.</td>
32 <td>./functions/autoload</td>
33 <td>An almost ksh-compatible 'autoload' (no lazy load).</td>
37 <td>./functions/autoload.v2</td>
38 <td>An almost ksh-compatible 'autoload' (no lazy load).</td>
42 <td>./functions/autoload.v3</td>
43 <td>A more ksh-compatible 'autoload' (with lazy load).</td>
47 <td>./functions/basename</td>
48 <td>A replacement for basename(1).</td>
52 <td>./functions/basename2</td>
53 <td>Fast basename(1) and dirname(1) functions for BASH/SH.</td>
54 <td>basename, dirname</td>
57 <td>./functions/coproc.bash</td>
58 <td>Start, control, and end coprocesses.</td>
61 <td>./functions/coshell.bash</td>
62 <td>Control shell coprocesses (see coprocess.bash).</td>
65 <td>./functions/coshell.README</td>
66 <td>README for coshell and coproc.</td>
69 <td>./functions/csh-compat</td>
70 <td>A C-shell compatibility package.</td>
74 <td>./functions/dirfuncs</td>
75 <td>Directory manipulation functions from the book 'The Korn Shell'.</td>
78 <td>./functions/dirname</td>
79 <td>A replacement for dirname(1).</td>
83 <td>./functions/emptydir</td>
84 <td>Find out if a directory is empty.</td>
87 <td>./functions/exitstat</td>
88 <td>Display the exit status of processes.</td>
91 <td>./functions/external</td>
92 <td>Like 'command' but FORCES use of external command.</td>
95 <td>./functions/fact</td>
96 <td>Recursive factorial function.</td>
99 <td>./functions/fstty</td>
100 <td>Front end to sync TERM changes to both stty(1) and readline 'bind'.</td>
104 <td>./functions/func</td>
105 <td>Print out definitions for functions named by arguments.</td>
108 <td>./functions/gethtml</td>
109 <td>Get a web page from a remote server (wget(1) in bash!).</td>
112 <td>./functions/getoptx.bash</td>
113 <td>getopt function that parses long-named options.</td>
116 <td>./functions/inetaddr</td>
117 <td>Internet address conversion (inet2hex & hex2inet).</td>
120 <td>./functions/inpath</td>
121 <td>Return zero if the argument is in the path and executable.</td>
125 <td>./functions/isnum.bash</td>
126 <td>Test user input on numeric or character value.</td>
129 <td>./functions/isnum2</td>
130 <td>Test user input on numeric values, with floating point.</td>
133 <td>./functions/isvalidip</td>
134 <td>Test user input for valid IP Addresses.</td>
137 <td>./functions/jdate.bash</td>
138 <td>Julian date conversion.</td>
141 <td>./functions/jj.bash</td>
142 <td>Look for running jobs.</td>
145 <td>./functions/keep</td>
146 <td>Try to keep some programs in the foreground and running.</td>
149 <td>./functions/ksh-cd</td>
150 <td>ksh-like 'cd': cd [-LP] [dir [change]].</td>
154 <td>./functions/ksh-compat-test</td>
155 <td>ksh-like arithmetic test replacements.</td>
159 <td>./functions/kshenv</td>
160 <td>Functions and aliases to provide the beginnings of a ksh environment for bash.</td>
164 <td>./functions/login</td>
165 <td>Replace the 'login' and 'newgrp' builtins in old Bourne shells.</td>
168 <td>./functions/lowercase</td>
169 <td>Rename files to lower case.</td>
170 <td>rename lower</td>
173 <td>./functions/manpage</td>
174 <td>Find and print a manual page.</td>
178 <td>./functions/mhfold</td>
179 <td>Print MH folders, useful only because folders(1) doesn't print mod date/times.</td>
182 <td>./functions/notify.bash</td>
183 <td>Notify when jobs change status.</td>
186 <td>./functions/pathfuncs</td>
187 <td>Path related functions (no_path, add_path, pre-path, del_path).</td>
191 <td>./functions/README</td>
195 <td>./functions/recurse</td>
196 <td>Recursive directory traverser.</td>
199 <td>./functions/repeat2</td>
200 <td>A clone of C shell builtin 'repeat'.</td>
204 <td>./functions/repeat3</td>
205 <td>A clone of C shell builtin 'repeat'.</td>
209 <td>./functions/seq</td>
210 <td>Generate a sequence from m to n, m defaults to 1.</td>
213 <td>./functions/seq2</td>
214 <td>Generate a sequence from m to n, m defaults to 1.</td>
217 <td>./functions/shcat</td>
218 <td>Readline-based pager.</td>
219 <td>cat, readline pager</td>
222 <td>./functions/shcat2</td>
223 <td>Readline-based pagers.</td>
224 <td>cat, readline pager</td>
227 <td>./functions/sort-pos-params</td>
228 <td>Sort the positional parameters.</td>
231 <td>./functions/substr</td>
232 <td>A function to emulate the ancient ksh builtin.</td>
236 <td>./functions/substr2</td>
237 <td>A function to emulate the ancient ksh builtin.</td>
241 <td>./functions/term</td>
242 <td>A shell function to set the terminal type interactively or not.</td>
245 <td>./functions/whatis</td>
246 <td>An implementation of the 10th Edition Unix sh builtin 'whatis(1)' command.</td>
249 <td>./functions/whence</td>
250 <td>An almost-ksh compatible 'whence(1)' command.</td>
253 <td>./functions/which</td>
254 <td>An emulation of 'which(1)' as it appears in FreeBSD.</td>
257 <td>./functions/xalias.bash</td>
258 <td>Convert csh alias commands to bash functions.</td>
259 <td>csh, aliasconv</td>
262 <td>./functions/xfind.bash</td>
263 <td>A 'find(1)' clone.</td>
268 <td>./loadables/</td>
269 <td>Example loadable replacements</td>
272 <td>./loadables/basename.c</td>
273 <td>Return non-directory portion of pathname.</td>
277 <td>./loadables/cat.c</td>
278 <td>cat(1) replacement with no options - the way cat was intended.</td>
279 <td>cat, readline pager</td>
282 <td>./loadables/cut.c</td>
283 <td>cut(1) replacement.</td>
286 <td>./loadables/dirname.c</td>
287 <td>Return directory portion of pathname.</td>
291 <td>./loadables/finfo.c</td>
292 <td>Print file info.</td>
295 <td>./loadables/getconf.c</td>
296 <td>POSIX.2 getconf utility.</td>
299 <td>./loadables/getconf.h</td>
300 <td>Replacement definitions for ones the system doesn't provide.</td>
303 <td>./loadables/head.c</td>
304 <td>Copy first part of files.</td>
307 <td>./loadables/hello.c</td>
308 <td>Obligatory "Hello World" / sample loadable.</td>
311 <td>./loadables/id.c</td>
312 <td>POSIX.2 user identity.</td>
315 <td>./loadables/ln.c</td>
319 <td>./loadables/logname.c</td>
320 <td>Print login name of current user.</td>
323 <td>./loadables/Makefile.in</td>
324 <td>Simple makefile for the sample loadable builtins.</td>
327 <td>./loadables/mkdir.c</td>
328 <td>Make directories.</td>
331 <td>./loadables/necho.c</td>
332 <td>echo without options or argument interpretation.</td>
335 <td>./loadables/pathchk.c</td>
336 <td>Check pathnames for validity and portability.</td>
339 <td>./loadables/print.c</td>
340 <td>Loadable ksh-93 style print builtin.</td>
343 <td>./loadables/printenv.c</td>
344 <td>Minimal builtin clone of BSD printenv(1).</td>
347 <td>./loadables/push.c</td>
348 <td>Anyone remember TOPS-20?</td>
351 <td>./loadables/README</td>
355 <td>./loadables/realpath.c</td>
356 <td>Canonicalize pathnames, resolving symlinks.</td>
359 <td>./loadables/rmdir.c</td>
360 <td>Remove directory.</td>
363 <td>./loadables/sleep.c</td>
364 <td>sleep for fractions of a second.</td>
367 <td>./loadables/strftime.c</td>
368 <td>Loadable builtin interface to strftime(3).</td>
371 <td>./loadables/sync.c</td>
372 <td>Sync the disks by forcing pending filesystem writes to complete.</td>
375 <td>./loadables/tee.c</td>
376 <td>Duplicate standard input.</td>
379 <td>./loadables/template.c</td>
380 <td>Example template for loadable builtin.</td>
383 <td>./loadables/truefalse.c</td>
384 <td>True and false builtins.</td>
387 <td>./loadables/tty.c</td>
388 <td>Return terminal name.</td>
391 <td>./loadables/uname.c</td>
392 <td>Print system information.</td>
395 <td>./loadables/unlink.c</td>
396 <td>Remove a directory entry.</td>
399 <td>./loadables/whoami.c</td>
400 <td>Print out username of current user.</td>
405 <td>./loadables/perl/</td>
406 <td>Illustrate how to build a Perl interpreter into bash.</td>
412 <td>Miscellaneous</td>
415 <td>./misc/aliasconv.bash</td>
416 <td>Convert csh aliases to bash aliases and functions.</td>
420 <td>./misc/aliasconv.sh</td>
421 <td>Convert csh aliases to bash aliases and functions.</td>
425 <td>./misc/cshtobash</td>
426 <td>Convert csh aliases, environment variables, and variables to bash equivalents.</td>
430 <td>./misc/README</td>
434 <td>./misc/suncmd.termcap</td>
435 <td>SunView TERMCAP string.</td>
440 <td>./scripts.noah</td>
441 <td>Noah Friedman's collection of scripts (updated to bash v2 syntax by Chet Ramey)</td>
444 <td>./scripts.noah/aref.bash</td>
445 <td>Pseudo-arrays and substring indexing examples.</td>
448 <td>./scripts.noah/bash.sub.bash</td>
449 <td>Library functions used by require.bash.</td>
452 <td>./scripts.noah/bash_version.bash</td>
453 <td>A function to slice up $BASH_VERSION.</td>
456 <td>./scripts.noah/meta.bash</td>
457 <td>Enable and disable eight-bit readline input.</td>
460 <td>./scripts.noah/mktmp.bash</td>
461 <td>Make a temporary file with a unique name.</td>
464 <td>./scripts.noah/number.bash</td>
465 <td>A fun hack to translate numerals into English.</td>
468 <td>./scripts.noah/PERMISSION</td>
469 <td>Permissions to use the scripts in this directory.</td>
472 <td>./scripts.noah/prompt.bash</td>
473 <td>A way to set PS1 to some predefined strings.</td>
476 <td>./scripts.noah/README</td>
480 <td>./scripts.noah/remap_keys.bash</td>
481 <td>A front end to 'bind' to redo readline bindings.</td>
484 <td>./scripts.noah/require.bash</td>
485 <td>Lisp-like require/provide library functions for bash.</td>
488 <td>./scripts.noah/send_mail.bash</td>
489 <td>Replacement SMTP client written in bash.</td>
492 <td>./scripts.noah/shcat.bash</td>
493 <td>Bash replacement for 'cat(1)'.</td>
497 <td>./scripts.noah/source.bash</td>
498 <td>Replacement for source that uses current directory.</td>
501 <td>./scripts.noah/string.bash</td>
502 <td>The string(3) functions at the shell level.</td>
505 <td>./scripts.noah/stty.bash</td>
506 <td>Front-end to stty(1) that changes readline bindings too.</td>
510 <td>./scripts.noah/y_or_n_p.bash</td>
511 <td>Prompt for a yes/no/quit answer.</td>
517 <td>./scripts.v2</td>
518 <td>John DuBois' ksh script collection (converted to bash v2 syntax by Chet Ramey).</td>
521 <td>./scripts.v2/arc2tarz</td>
522 <td>Convert an "arc" archive to a compressed tar archive.</td>
525 <td>./scripts.v2/bashrand</td>
526 <td>Random number generator with upper and lower bounds and optional seed.</td>
530 <td>./scripts.v2/cal2day.bash</td>
531 <td>Convert a day number to a name.</td>
534 <td>./scripts.v2/cdhist.bash</td>
535 <td>cd replacement with a directory stack added.</td>
538 <td>./scripts.v2/corename</td>
539 <td>Tell what produced a core file.</td>
542 <td>./scripts.v2/fman</td>
543 <td>Fast man(1) replacement.</td>
547 <td>./scripts.v2/frcp</td>
548 <td>Copy files using ftp(1) but with rcp-type command line syntax.</td>
551 <td>./scripts.v2/lowercase</td>
552 <td>Change filenames to lower case.</td>
553 <td>rename lower</td>
556 <td>./scripts.v2/ncp</td>
557 <td>A nicer front end for cp(1) (has -i, etc.).</td>
560 <td>./scripts.v2/newext</td>
561 <td>Change the extension of a group of files.</td>
565 <td>./scripts.v2/nmv</td>
566 <td>A nicer front end for mv(1) (has -i, etc.).</td>
570 <td>./scripts.v2/pages</td>
571 <td>Print specified pages from files.</td>
574 <td>./scripts.v2/PERMISSION</td>
575 <td>Permissions to use the scripts in this directory.</td>
578 <td>./scripts.v2/pf</td>
579 <td>A pager front end that handles compressed files.</td>
582 <td>./scripts.v2/pmtop</td>
583 <td>Poor man's 'top(1)' for SunOS 4.x and BSD/OS.</td>
586 <td>./scripts.v2/README</td>
590 <td>./scripts.v2/ren</td>
591 <td>Rename files by changing parts of filenames that match a pattern.</td>
595 <td>./scripts.v2/rename</td>
596 <td>Change the names of files that match a pattern.</td>
600 <td>./scripts.v2/repeat</td>
601 <td>Execute a command multiple times.</td>
605 <td>./scripts.v2/shprof</td>
606 <td>Line profiler for bash scripts.</td>
609 <td>./scripts.v2/untar</td>
610 <td>Unarchive a (possibly compressed) tarfile into a directory.</td>
613 <td>./scripts.v2/uudec</td>
614 <td>Carefully uudecode(1) multiple files.</td>
617 <td>./scripts.v2/uuenc</td>
618 <td>uuencode(1) multiple files.</td>
621 <td>./scripts.v2/vtree</td>
622 <td>Print a visual display of a directory tree.</td>
626 <td>./scripts.v2/where</td>
627 <td>Show where commands that match a pattern are.</td>
633 <td>Example scripts</td>
636 <td>./scripts/adventure.sh</td>
637 <td>Text adventure game in bash!</td>
640 <td>./scripts/bcsh.sh</td>
641 <td>Bourne shell cshell-emulator.</td>
645 <td>./scripts/bash-hexdump.sh</td>
646 <td>hexdump(1) in bash</td>
647 <td>hexdump -C, hd</td>
649 <td>./scripts/cat.sh</td>
650 <td>Readline-based pager.</td>
651 <td>cat, readline pager</td>
654 <td>./scripts/center</td>
655 <td>Center - center a group of lines.</td>
658 <td>./scripts/dd-ex.sh</td>
659 <td>Line editor using only /bin/sh, /bin/dd and /bin/rm.</td>
662 <td>./scripts/fixfiles.bash</td>
663 <td>Recurse a tree and fix files containing various "bad" chars.</td>
666 <td>./scripts/hanoi.bash</td>
667 <td>The inevitable Towers of Hanoi in bash.</td>
670 <td>./scripts/inpath</td>
671 <td>Search $PATH for a file the same name as $1; return TRUE if found.</td>
675 <td>./scripts/krand.bash</td>
676 <td>Produces a random number within integer limits.</td>
680 <td>./scripts/line-input.bash</td>
681 <td>Line input routine for GNU Bourne-Again Shell plus terminal-control primitives.</td>
684 <td>./scripts/nohup.bash</td>
685 <td>bash version of 'nohup' command.</td>
688 <td>./scripts/precedence</td>
689 <td>Test relative precedences for '&&' and '||' operators.</td>
692 <td>./scripts/randomcard.bash</td>
693 <td>Print a random card from a card deck.</td>
697 <td>./scripts/README</td>
701 <td>./scripts/scrollbar</td>
702 <td>Display scrolling text.</td>
705 <td>./scripts/scrollbar2</td>
706 <td>Display scrolling text.</td>
709 <td>./scripts/self-repro</td>
710 <td>A self-reproducing script (careful!)</td>
713 <td>./scripts/showperm.bash</td>
714 <td>Convert ls(1) symbolic permissions into octal mode.</td>
717 <td>./scripts/shprompt</td>
718 <td>Display a prompt and get an answer satisfying certain criteria.</td>
722 <td>./scripts/spin.bash</td>
723 <td>Display a 'spinning wheel' to show progress.</td>
726 <td>./scripts/timeout</td>
727 <td>Give rsh(1) a shorter timeout.</td>
730 <td>./scripts/timeout2</td>
731 <td>Execute a given command with a timeout.</td>
734 <td>./scripts/timeout3</td>
735 <td>Execute a given command with a timeout.</td>
738 <td>./scripts/vtree2</td>
739 <td>Display a tree printout of dir in 1k blocks.</td>
743 <td>./scripts/vtree3</td>
744 <td>Display a graphical tree printout of dir.</td>
748 <td>./scripts/vtree3a</td>
749 <td>Display a graphical tree printout of dir.</td>
753 <td>./scripts/websrv.sh</td>
754 <td>A web server in bash!</td>
757 <td>./scripts/xterm_title</td>
758 <td>Print the contents of the xterm title bar.</td>
761 <td>./scripts/zprintf</td>
762 <td>Emulate printf (obsolete since it's now a bash builtin).</td>
767 <td>./startup-files</td>
768 <td>Example Start-up files.</td>
771 <td>./startup-files/Bash_aliases</td>
772 <td>Some useful aliases (Fox).</td>
775 <td>./startup-files/Bash_profile</td>
776 <td>Sample startup file for bash login shells (Fox).</td>
779 <td>./startup-files/bash-profile</td>
780 <td>Sample startup file for bash login shells (Ramey).</td>
783 <td>./startup-files/bashrc</td>
784 <td>Sample Bourne Again SHell init file (Ramey).</td>
787 <td>./startup-files/Bashrc.bfox</td>
788 <td>Sample Bourne Again SHell init file (Fox).</td>
791 <td>./startup-files/README</td>
797 <td>./startup-files/apple</td>
798 <td>Example Start-up files for Mac OS X.</td>
801 <td>./startup-files/apple/aliases</td>
802 <td>Sample aliases for Mac OS X.</td>
805 <td>./startup-files/apple/bash.defaults</td>
806 <td>Sample User preferences file.</td>
809 <td>./startup-files/apple/environment</td>
810 <td>Sample Bourne Again Shell environment file.</td>
813 <td>./startup-files/apple/login</td>
814 <td>Sample login wrapper.</td>
817 <td>./startup-files/apple/logout</td>
818 <td>Sample logout wrapper.</td>
821 <td>./startup-files/apple/rc</td>
822 <td>Sample Bourne Again Shell config file.</td>
825 <td>./startup-files/apple/README</td>