Bash . Running Several Commands All at Once

commandline session

$ls
src  war
$cd & ls &
[1] 2587
[2] 2588
$src  war

[1]-  Done                    cd
[2]+  Done                    ls --color=auto
$pwd
/home/jeffrin/beautiful-work
$
$cd & ls & cd &
[1] 2590
[2] 2591
[3] 2592
$src  war

[1]   Done                    cd
[2]-  Done                    ls --color=auto
[3]+  Done                    cd
$pwd
/home/jeffrin/beautiful-work
$cd .. & pwd  &
[1] 2593
[2] 2594
$/home/jeffrin/beautiful-work

[1]-  Done                    cd ..
[2]+  Done                    pwd
$pwd
/home/jeffrin/beautiful-work
$cd &
[1] 2614
$pwd
/home/jeffrin/beautiful-work
[1]+  Done                    cd
$ls & cd ; pwd
[1] 2625
/home/jeffrin
$src  war

[1]+  Done                    ls --color=auto  (wd: ~/beautiful-work)
(wd now: ~)
$pwd
/home/jeffrin
$

Basic tinkering with “set” command and “noclobber” related

commandline session

[bash light=”true”]
$echo improve > clean.txt
$cat clean.txt
improve
$set -o noclobber
$echo new > clean.txt
bash: clean.txt: cannot overwrite existing file
$echo new >> clean.txt
$cat clean.txt
improve
new
$echo again >| clean.txt
$cat clean.txt
again
$set +o noclobber
$echo improve > clean.txt
$cat clean.txt
improve
$
[/bash]

Errors and Exceptions

commandline session

$gcc error.c
$cat error.c
#include

main()
{
int a=0;
int b=10;
printf("Hello Alln");
printf("%d",b/a);
}

$./a.out > outputa
Floating point exception
$cat outputa
$
$./a.out 2> outputa
Hello All
Floating point exception
$./a.out > outputa
Floating point exception
$./a.out 2> outputb
Hello All
Floating point exception
$./a.out &> outputc
Floating point exception
$cat outputa
$
$cat outputb
$cat outputc
$

An Error “indicates serious problems that a reasonable application should not try to catch.

An Exception “indicates conditions that a reasonable application might want to catch.

source : http://stackoverflow.com/questions/5813614/what-is-difference-between-errors-and-exceptions

pattern matching operators PART 1

commandline session

$cat pm.sh
#!/bin/bash

filename=${1##*/}

echo $filename
$sh pm.sh /bin/bash
bash
$vim pm.sh
$cat pm.sh
#!/bin/bash

filename=${1}

echo $filename
$sh pm.sh /bin/bash
/bin/bash
$vim pm.sh
$cat pm.sh
#!/bin/bash

filename=${#}

echo $filename
$sh pm.sh /bin/bash
1
$vim pm.sh
$cat pm.sh
#!/bin/bash

filename=${##}

echo $filename
$sh pm.sh /bin/bash
1
$vim pm.sh
$cat pm.sh
#!/bin/bash

filename=${*}

echo $filename
$sh pm.sh /bin/bash
/bin/bash
$vim pm.sh
$cat pm.sh
#!/bin/bash

filename=${/}

echo $filename
$sh pm.sh /bin/bash
pm.sh: 3: pm.sh: Bad substitution
$

Bash . number of script arguments

commandline session

$. var 1 2 3 4
4
$. var 1 2 3 4 3 3 3
7
$cat var
Name=Jeffrin
Age=36

echo $#
$. var
0
$. var .
1
$. var $
1
$. var ?
5
$. var ?
5
$. var 1 2
2
$. var ?
5
$echo $?
0
$. var *
768
$. var )
bash: syntax error near unexpected token `)'
$. var &
[1] 5679
$0

[1]+  Done                    . var
$. var ^
1
$. var %
1
$. var @
1
$. var !
1
$. var ~
1
$. var -
1
$. var _
1
$. var +
1
$. var =
1
$. var |
> ;
bash: syntax error near unexpected token `;'
$. var 
> .
1
$

$. var ?
~/ 0/ 1  c  h
$. var ?
5
$. var *
Display all 768 possibilities? (y or n)
$. var *
768
$