Why Bash Sucks
Why Bash Sucks
Bash sucks donkey ass. Bash is 40 years old baggage. ( bash is born in 1989, a enhanced Bourne Shell, Bourne Shell was born in 1979.)
- Syntax soup. e.g. For printing version, you have these variations:
-v
•-V
•-version
•--version
. Sometimes options can be combined, sometimes not. Some option takes a argument, with many different syntax, some arg separated by space, some require equal sign. Order of options may or may not matter. Many options effect other options in complex way. 〔see Unix Pipe as Functional Language〕 - Semantic noodle. e.g. Some command has recursive option
-r
, others requires callingfind
•xargs
. - Randomish and cryptic command names. Part of which are juvenile humor.
ls
•cat
•xargs
•pwd
•sed
•awk
•grep
•du
•file
•type
•uname
•df
•diff
•ps
•top
•head
•tail
•id
•with
•who
•wc
•fsck
. - Cryptic and counter-intuitive error code. Success signal is 0. Error is a octal number. Often, you are forced to check the exit code.
- Some command are part of the shell as function, some are independent tools. e.g.
ls
•kill
•ps
. Try to find if they are part of bash. And if so, is bash calling it or the independent command. 〔see Linux by Command Line〕 - Lousy doc aka Man Page. Techno babble, cryptic, incomprehensible. No examples of common usage. 〔see Which Programing Language Has Best Documentation?〕
- 40 years of baggage. e.g.
tar xvf
(no dash),ps -ef
vsps auwx
- 40 years of baggage of init. .bashrc .profile .bash_profile .login 〔see Bash Init, .bashrc .profile .bash_profile〕
- Sea of islands. Each command or tool is written on its own. No coherence.
grep
•sed
•awk
•bash
•perl
. 〔see Perl Tutorial by Example〕
Shell WTFs
someone detailed the problems of unix shell.