I was perhaps being a bit too trial and errory, but I typed “bash --info” into the terminal. Now instead of “me@me” it says “bash-4.1” and nothing I type in does anything at all.
Now if I just open another terminal that’s fine back to normal, but I still want to know what I just did, what its for, and how in the event of doing it again to just make it go back to normal.
I am bit confused:
Die std./default-Shell with the most systems is the bash shell. Calling “bash --info” just does produce the parameters when invoking the bash, because bash tells you that it does not know a parameter “–info”:
swen@Augustus:~$ bash --info
bash: --info: invalid option
Usage: bash [GNU long option] [option] ...
bash [GNU long option] [option] script-file ...
GNU long options:
--debug
--debugger
--dump-po-strings
--dump-strings
--help
--init-file
--login
--noediting
--noprofile
--norc
--posix
--protected
--rcfile
--restricted
--verbose
--version
--wordexp
Shell options:
-irsD or -c command or -O shopt_option (invocation only)
-abefhkmnptuvxBCHP or -o option
swen@Augustus:~$
It seems for me more that you opened an other sub-shell (a shell in the shell). You always can leave a shell with “exit”. Example here I am first in bash and than in csh than in a local ssh-root and leave one after the other one with “exit”:
swen@Augustus:~$ csh
% ssh -l root 127.0.0.1
root@127.0.0.1's password:
Linux Augustus 2.6.26-2-amd64 #1 SMP Wed May 12 18:03:14 UTC 2010 x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Jun 23 02:12:14 2010 from localhost
Augustus:~# exit
logout
Connection to 127.0.0.1 closed.
% exit
% exit
swen@Augustus:~$
I think she misstyped… I got the same results with
bash -info
and
exit
does nothing
Ah yeah… probably the mistyped thing, exit indeed does nothing…
Shut in the own feed - solution of the miracle:
bash -c "help set"
set: set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
-a Mark variables which are modified or created for export.
-b Notify of job termination immediately.
-e Exit immediately if a command exits with a non-zero status.
-f Disable file name generation (globbing).
-h Remember the location of commands as they are looked up.
-k All assignment arguments are placed in the environment for a
command, not just those that precede the command name.
-m Job control is enabled.
-n Read commands but do not execute them.
So you say the bash -i (interactive) and -n (do nothing) … and it does nothing.
Normally you do use those parameters - funny option “-n” … I looked up: According to “our bible”: UNIX, Unleashed, 3rd ed. , 596 this is used to check the formal syntax of shellscripts. Makes some sense.
ROFL! What is the purpose of the “do nothing” option?
Ok, what you actually did was;
bash -info
Note the use of the “single” minus sign. If you use “double” minus signs, for example “–info”, this signifies “long” command line options, i.e. a ‘word’ is expected after the minus sign to specify the action. (this is the ‘newer’ format for command line tools) The older format uses a single minus sign followed by a letter, so for example you might use;
ls -a
OR
ls --all
These both do the same thing. One step further, the short options can be concatenated behind a single minus sign so for example;
ls --all --inode
Is the same as;
ls -ai
… you see where this is going … you typed;
bash -info
Which is the same as;
bash -i -n -f -o
And bash -n enters a ‘sub’ shell, with the -n telling bash not to execute any command, so the -i -f -o are ignored. Because bash doesn’t execute any command with -n, it doesn’t execute the startup routine, which sets the default prompt to be your username @ your machine name, hence the prompt is left as the bash default which is bash-version$.
Make sense?
As I said above and modified my entry:
Checking the formal syntax of shell scripts.
Thank you all for my enlightenment.