21 lines
		
	
	
	
		
			400 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
	
		
			400 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| # Towers of Hanoi in bash
 | |
| #
 | |
| # cribbed from the ksh93 book, example from exercises on page 85
 | |
| #
 | |
| # Chet Ramey
 | |
| # chet@po.cwru.edu
 | |
| 
 | |
| hanoi() # n from to spare
 | |
| {
 | |
|     typeset -i nm1=$1-1
 | |
|     ((nm1>0)) && hanoi $nm1 $2 $4 $3
 | |
|     echo "Move disc $2 to $3"
 | |
|     ((nm1>0)) && hanoi $nm1 $4 $3 $2
 | |
| }
 | |
| 
 | |
| case $1 in
 | |
| [1-9])
 | |
|       hanoi $1 1 2 3;;
 | |
| *)    echo "${0##*/}: Argument must be from 1 to 9"
 | |
|       exit 1;;
 | |
| esac
 | 
