Bash

From Wiki

Jump to: navigation, search

Contents

Change the Shell Prompt

I found that particularly with Centos 5, that the default shell prompt for root was terrible. It did not show the pwd, user or host!

Before

-bash-3.1# ls

Showing no present working directory, no current username, no hostname


Syntax

PS1='\u@\h:\w\$ '

There are a few other things one can show also. Such as the time, date, FQHN etc. man bash for the full list.


After

root@volcano:/tmp# ls

Ref.: http://www.builderau.com.au/program/linux/soa/10-shortcuts-to-master-bash/0,339028299,339279043,00.htm

Function problem in Bash

I recently dist-upgraded a ubuntu server, and one bash script stopped working.

Original =

#!/bin/bash

watch '
function yesno(){
case "$1" in
       0)      echo "yes"
       ;;
       1)      echo "no"
       ;;
       *)      echo "error"
       ;;
esac
}

Problem

sh: Syntax error: "(" unexpected

Solution

Remove the word function, and call it directly.

#!/bin/bash

watch '
yesno(){
case "$1" in
       0)      echo "yes"
       ;;
       1)      echo "no"
       ;;
       *)      echo "error"
       ;;
esac
}

Ref: http://stackoverflow.com/questions/6347119/bash-syntax-error

Personal tools