50 lines
		
	
	
	
		
			919 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			919 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| # nameref variables as for loop index variables are special
 | |
| v1=1
 | |
| v2=2
 | |
| 
 | |
| # simple for loop
 | |
| for v in v1 v2
 | |
| do
 | |
| 	typeset -n ref=$v
 | |
| 	echo $ref
 | |
| done
 | |
| unset v
 | |
| 
 | |
| set -- first second third fourth fifth
 | |
| 
 | |
| # unless you put a ${!v} in the for loop, ksh93 misbehaves
 | |
| typeset -n v=v1
 | |
| for v in v1 v2; do
 | |
| 	echo "${!v}: $v"
 | |
| done
 | |
| unset v
 | |
| 
 | |
| # example cribbed from ksh93 o'reilly book
 | |
| first="I am first"
 | |
| second="I am in the middle"
 | |
| third="I am last"
 | |
| 
 | |
| typeset -n ref=first
 | |
| for ref in first second third ; do
 | |
| 	echo "ref -> ${!ref}, value: $ref"
 | |
| done
 | |
| echo final state: "ref -> ${!ref}, value: $ref"
 | |
| 
 | |
| readonly one=1
 | |
| readonly two=2
 | |
| readonly three=3
 | |
| 
 | |
| typeset -n ref=one
 | |
| for ref in one two three; do
 | |
| 	echo "ref -> ${!ref}, value: $ref"
 | |
| done
 | |
| echo final state: "ref -> ${!ref}, value: $ref"
 | |
| 
 | |
| unset ref
 | |
| typeset -n ref=one
 | |
| readonly ref
 | |
| 
 | |
| for ref in one two three; do
 | |
| 	echo "ref -> ${!ref}, value: $ref"
 | |
| done
 | |
| echo final state: "ref -> ${!ref}, value: $ref"
 | 
