Table of Contents

Bash

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