124 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| LC_ALL=C
 | |
| LANG=C
 | |
| trap 'rm /tmp/newhistory' 0
 | |
| 
 | |
| file=bax
 | |
| histchars='!^#'	# make sure history comment char is set correctly
 | |
| 
 | |
| unset HISTFILESIZE HISTTIMEFORMAT
 | |
| 
 | |
| history -c
 | |
| 
 | |
| HISTFILE=history.list
 | |
| HISTCONTROL=ignoreboth
 | |
| HISTIGNORE='&:#*:history*:fc*'
 | |
| # we will end up exercising the history stifling code as a result
 | |
| HISTSIZE=32
 | |
| 
 | |
| shopt -s cmdhist
 | |
| set -o history
 | |
| 
 | |
| history -p '!!'
 | |
| 
 | |
| # this should result in a failed history expansion error
 | |
| history -p '!!:z'
 | |
| 
 | |
| history
 | |
| 
 | |
| HISTFILE=/tmp/newhistory
 | |
| history -a
 | |
| 
 | |
| history -w
 | |
| 
 | |
| history -s "echo line 2 for history"
 | |
| history
 | |
| history -p '!e'
 | |
| history -p '!!'
 | |
| 
 | |
| set -H
 | |
| !!
 | |
| !e
 | |
| 
 | |
| history
 | |
| 
 | |
| echo a b c d e
 | |
| !?ch?
 | |
| !-2
 | |
| ^2^8
 | |
| 
 | |
| !2
 | |
| 
 | |
| # we're selecting /bin/sh -c ...; we want `sh'
 | |
| echo !-1:0:t
 | |
| # we're selecting /bin/sh -c ...; we want `/bin'
 | |
| echo !-2:0:h
 | |
| # we're selecting `echo a b c d e'; we want `e'
 | |
| echo !?d?:5
 | |
| 
 | |
| echo a b c d e
 | |
| echo !-1:2-$
 | |
| echo !-2:2-4
 | |
| echo !-2:3*
 | |
| echo !!:*
 | |
| 
 | |
| echo !?a?:2-
 | |
| 
 | |
| echo file.c
 | |
| echo !!:$:r
 | |
| echo !-2:$:e
 | |
| echo !-3:$:r:q
 | |
| 
 | |
| echo $file.c
 | |
| echo !!:$:r
 | |
| echo !-2:^:e
 | |
| echo !-3:$:r:q
 | |
| 
 | |
| echo a b c d e
 | |
| echo !!:1-$:x
 | |
| echo !-2:1-$:q
 | |
| 
 | |
| echo foo.c foo.o foo.html foo.h
 | |
| !!:s/foo/bar/
 | |
| !-2:gs/foo/bar/
 | |
| !!:gs/bar/x&/
 | |
| !-2:g&
 | |
| 
 | |
| # make sure we can use any delimiter in the substitution, not just `/'
 | |
| !!:gs+bar+whix+
 | |
| 
 | |
| !!:p
 | |
| 
 | |
| # wow
 | |
| echo !?.o?:%:r:q
 | |
| 
 | |
| !!:0 !?.h?:%:q
 | |
| !!:-$
 | |
| !:-$
 | |
| 
 | |
| history
 | |
| 
 | |
| # make sure single quotes inhibit history expansion
 | |
| echo '!!'
 | |
| 
 | |
| # make sure backslashes can quote the history expansion character
 | |
| echo \!\!
 | |
| 
 | |
| # but other expansions on the line should still be processed
 | |
| 
 | |
| echo '!!' !!:*
 | |
| history -c
 | |
| unset HISTFILE
 | |
| 
 | |
| # make sure that the special bash cases are not history expanded
 | |
| case p in
 | |
| [!A-Z])	echo ok 1;;
 | |
| esac
 | |
| 
 | |
| var1='ok 2'
 | |
| var2=var1
 | |
| 
 | |
| echo ${!var2}
 | |
| 
 | |
| # Bash-2.01[.1] fails this test -- it attempts history expansion after the
 | |
| # history_comment_char
 | |
| echo ok 3 # !1200
 | 
