Difference between revisions of "Bash"

From Linuxintro
imported>ThorstenStaerk
(New page: Bash is the default [http://en.wikipedia.org/wiki/Shell_(computing) shell] in most Linuxes, for example in SUSE Linux. If you call it, you get a prompt like this: tweedleburg:~ # for a co...)
 
imported>ThorstenStaerk
 
(7 intermediate revisions by the same user not shown)
Line 14: Line 14:
 
  echo "Hello $name"
 
  echo "Hello $name"
 
You can execute it and will be greeted by the name you give.
 
You can execute it and will be greeted by the name you give.
 +
tweedleburg:~ # bash myprogram
 +
What is your name
 +
Thorsten
 +
Hello Thorsten
 +
tweedleburg:~ #
 +
 +
== for loop ==
 +
for ((i=1; i<6; i++)); do
 +
  echo $i
 +
done
 +
OR
 +
for i in `seq 1 5`; do echo $i; done
 +
 +
== foreach file ==
 +
This does a hexdump operation on all files:
 +
for file in * ; do ''hexdump'' $file ${file%.*} ; done
 +
 +
= bash completion =
 +
Bash completion is configured in all files under /etc/bash_completion.d/. [http://wiki.bennyshome.de/Bash_completion_f%C3%BCr_Dell_OMSA Here] is an example.
 +
 +
= Konsole prompt =
 +
Enter into .bashrc:
 +
export PS1='\[\033]0;\007\]\[\033]30;\u@\h\007\]\u@\h:\w\$ '
 +
 +
= History =
 +
There is a history of commands that have most recently been entered. The command history will show them. To stop bash writing a history, use
 +
export HISTFILE=/dev/null
 +
 +
= See also =
 +
* [[bash operators]]
 +
* [[scripting tutorial]]

Latest revision as of 15:24, 21 January 2012

Bash is the default shell in most Linuxes, for example in SUSE Linux. If you call it, you get a prompt like this:

tweedleburg:~ #

for a computer named tweedleburg. To start a program, just type its name and Enter, e.g.

tweedleburg:~ # firefox

To find out what shell you are in, echo the SHELL variable, like this:

tweedleburg:~ # echo $SHELL
/bin/bash

Programming

You can use your shell to execute little programs written in bash. For example, if you have a file myprogram containing the text

#!/bin/bash
echo "What is your name "
read name 
echo "Hello $name"

You can execute it and will be greeted by the name you give.

tweedleburg:~ # bash myprogram
What is your name
Thorsten
Hello Thorsten
tweedleburg:~ #

for loop

for ((i=1; i<6; i++)); do
  echo $i
done

OR

for i in `seq 1 5`; do echo $i; done

foreach file

This does a hexdump operation on all files:

for file in * ; do hexdump $file ${file%.*} ; done

bash completion

Bash completion is configured in all files under /etc/bash_completion.d/. Here is an example.

Konsole prompt

Enter into .bashrc:

export PS1='\[\033]0;\007\]\[\033]30;\u@\h\007\]\u@\h:\w\$ '

History

There is a history of commands that have most recently been entered. The command history will show them. To stop bash writing a history, use

export HISTFILE=/dev/null

See also