1 ## tags: interactive
2 ## compare_shells: bash
3 ## oils_failures_allowed: 2
4
5 #### fc -l lists history commands
6 printf "echo %s\n" {1..3} > tmp
7
8 echo '
9 HISTFILE=tmp
10 history -c
11 history -r
12
13 fc -l
14 ' | $SH --norc -i
15
16 # match osh's behaviour of echoing ^D for EOF
17 case $SH in bash) echo '^D' ;; esac
18
19 ## STDOUT:
20 1 history -r
21 2 echo 1
22 3 echo 2
23 4 echo 3
24 ^D
25 ## END
26
27 #### fc -ln lists history commands without numbers
28 printf "echo %s\n" {1..3} > tmp
29
30 echo '
31 HISTFILE=tmp
32 history -c
33 history -r
34
35 fc -ln
36 ' | $SH --norc -i
37
38 # match osh's behaviour of echoing ^D for EOF
39 case $SH in bash) echo '^D' ;; esac
40
41 ## STDOUT:
42 history -r
43 echo 1
44 echo 2
45 echo 3
46 ^D
47 ## END
48
49 #### fc -lr lists history commands in reverse order
50 printf "echo %s\n" {1..3} > tmp
51
52 echo '
53 HISTFILE=tmp
54 history -c
55 history -r
56
57 fc -lr
58 ' | $SH --norc -i
59
60 # match osh's behaviour of echoing ^D for EOF
61 case $SH in bash) echo '^D' ;; esac
62
63 ## STDOUT:
64 4 echo 3
65 3 echo 2
66 2 echo 1
67 1 history -r
68 ^D
69 ## END
70
71 #### fc -lnr lists history commands without numbers in reverse order
72 printf "echo %s\n" {1..3} > tmp
73
74 echo '
75 HISTFILE=tmp
76 history -c
77 history -r
78
79 fc -lnr
80 ' | $SH --norc -i
81
82 # match osh's behaviour of echoing ^D for EOF
83 case $SH in bash) echo '^D' ;; esac
84
85 ## STDOUT:
86 echo 3
87 echo 2
88 echo 1
89 history -r
90 ^D
91 ## END
92
93 #### fc -l lists history commands with default page size
94 printf "echo %s\n" {1..16} > tmp
95
96 echo '
97 HISTFILE=tmp
98 history -c
99 history -r
100
101 fc -l
102 ' | $SH --norc -i
103
104 # match osh's behaviour of echoing ^D for EOF
105 case $SH in bash) echo '^D' ;; esac
106
107 ## STDOUT:
108 2 echo 1
109 3 echo 2
110 4 echo 3
111 5 echo 4
112 6 echo 5
113 7 echo 6
114 8 echo 7
115 9 echo 8
116 10 echo 9
117 11 echo 10
118 12 echo 11
119 13 echo 12
120 14 echo 13
121 15 echo 14
122 16 echo 15
123 17 echo 16
124 ^D
125 ## END
126
127 #### fc -l [first] where first is an index
128 printf "echo %s\n" {1..3} > tmp
129
130 echo '
131 HISTFILE=tmp
132 history -c
133 history -r
134
135 fc -l 2
136 ' | $SH --norc -i
137
138 # match osh's behaviour of echoing ^D for EOF
139 case $SH in bash) echo '^D' ;; esac
140
141 ## STDOUT:
142 2 echo 1
143 3 echo 2
144 4 echo 3
145 ^D
146 ## END
147
148 #### fc -l [first] where first is an offset from current command
149 printf "echo %s\n" {1..3} > tmp
150
151 echo '
152 HISTFILE=tmp
153 history -c
154 history -r
155
156 fc -l -3
157 ' | $SH --norc -i
158
159 # match osh's behaviour of echoing ^D for EOF
160 case $SH in bash) echo '^D' ;; esac
161
162 ## STDOUT:
163 2 echo 1
164 3 echo 2
165 4 echo 3
166 ^D
167 ## END
168
169 #### fc -l [first] [last] where first and last are indexes
170 printf "echo %s\n" {1..3} > tmp
171
172 echo '
173 HISTFILE=tmp
174 history -c
175 history -r
176
177 fc -l 2 3
178 ' | $SH --norc -i
179
180 # match osh's behaviour of echoing ^D for EOF
181 case $SH in bash) echo '^D' ;; esac
182
183 ## STDOUT:
184 2 echo 1
185 3 echo 2
186 ^D
187 ## END
188
189 #### fc -l [first] [last] where first and last are offsets from current command
190 printf "echo %s\n" {1..3} > tmp
191
192 echo '
193 HISTFILE=tmp
194 history -c
195 history -r
196
197 fc -l -3 -2
198 ' | $SH --norc -i
199
200 # match osh's behaviour of echoing ^D for EOF
201 case $SH in bash) echo '^D' ;; esac
202
203 ## STDOUT:
204 2 echo 1
205 3 echo 2
206 ^D
207 ## END
208
209 #### fc -l [first] [last] where first and last are reversed indexes
210 printf "echo %s\n" {1..3} > tmp
211
212 echo '
213 HISTFILE=tmp
214 history -c
215 history -r
216
217 fc -l 3 2
218 ' | $SH --norc -i
219
220 # match osh's behaviour of echoing ^D for EOF
221 case $SH in bash) echo '^D' ;; esac
222
223 ## STDOUT:
224 3 echo 2
225 2 echo 1
226 ^D
227 ## END
228
229 #### fc -lr [first] [last] where first and last are reversed indexes does not undo reverse
230 printf "echo %s\n" {1..3} > tmp
231
232 echo '
233 HISTFILE=tmp
234 history -c
235 history -r
236
237 fc -lr 3 2
238 ' | $SH --norc -i
239
240 # match osh's behaviour of echoing ^D for EOF
241 case $SH in bash) echo '^D' ;; esac
242
243 ## STDOUT:
244 3 echo 2
245 2 echo 1
246 ^D
247 ## END