-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathhistory.sh
112 lines (107 loc) · 2.54 KB
/
history.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/bin/bash
## history
## - easier to use history command
## version 0.0.3 - execute-patterns
## to do:
## - only show real history line numbers
##################################################
. $( dirname ${0} )/error.sh
_cleanup() {
_() {
{
test ! -f "${1}" || {
cecho yellow $( rm -v ${1} )
}
} &>/dev/null
}
_ "temp-history-1"
_ "temp-history-2"
}
#-------------------------------------------------
. $( dirname ${0} )/aliases/commands.sh
#-------------------------------------------------
cecho() { $( dirname ${0} )/cecho.sh ${@} ; }
car() { $( dirname ${0} )/car.sh ${@} ; }
cdr() { $( dirname ${0} )/cdr.sh ${@} ; }
#-------------------------------------------------
## testing (1)
_history-grep-for-each-pattern-do() { #{ local patterns ; patterns=${@} ; }
echo -n "| grep "
echo -n "-"
echo -n "e \"${pattern}\" "
}
## testing (1)
_history-grep-for-each-pattern() { #{ local patterns ; patterns=${@} ; }
{
local pattern
for pattern in ${patterns}
do
${FUNCNAME}-do
done
} | sed '1s/^.//'
}
_history-grep-setup-patterns() {
pattern=$( car ${patterns} )
cecho yellow pattern: ${pattern}
cecho yellow patterns: ${patterns}
patterns=$( cdr ${patterns} || true )
}
_history-grep-execute-patterns() {
cecho green in ${FUNCNAME}
{
{
gawk -e "/${pattern}/{print NR \" \" \$(0)}" temp-history-1
} | tee temp-history-2
} 1>&2
cecho yellow $( cp -v temp-history-2 temp-history-1 )
}
_history-grep() { { local patterns ; patterns=${@} ; }
## testing (1)
#echo $( ${FUNCNAME}-for-each-pattern )
#return
#{
# {
# cat ~/.bash_history
# } \
# | gawk '{print NR " " $(0)}' \
# | grep -e "${patterns}"
#}
cecho yellow $( cp -v ~/.bash_history temp-history-1 )
cecho yellow $( cp -v temp-history-1 temp-history-2 )
{
tail temp-history-1
} 1>&2
local pattern
while [ ! ]
do
test "${patterns}" || { break ; }
${FUNCNAME}-setup-patterns
${FUNCNAME}-execute-patterns
continue
done
cat temp-history-1
}
_history-last() { { local patterns ; patterns=${@} ; }
{
_history-grep ${patterns}
} | sed -n '$p'
}
_history() {
{
commands
} 2>/dev/null
}
##################################################
if [ ! ]
then
true
else
exit 1 # wrong args
fi
##################################################
_history ${@}
##################################################
## generated by create-stub2.sh v0.1.1
## on Mon, 07 May 2018 08:29:04 +0900
## see <https://github.com/temptemp3/sh2>
##################################################