|
|
A228162
|
|
Number of bangbangs (!!) in shell substitution when starting with : '!!' and : "!!" '!!'
|
|
1
|
|
|
1, 2, 2, 3, 5, 17, 161, 15681, 159591041, 16866847940875521, 189345699699803478502456213711361
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
0,2
|
|
COMMENTS
|
Executing the following no-op commands in a unix shell (bash, dash or zsh)
: '!!'
: "!!" '!!'
followed by repeated execution of the last command (arrow-up, enter) leads to a series of substitutions due to the !! (bangbang) operator:
: ": '!!'" '!!'
: ": ': ": '!!'" '!!''" '!!'
: ": ': ": '!!'" ': ": ': ": '!!'" '!!''" '!!'''" '!!'
These commands show a very irregular pattern as some of the single-quotes (') and double quotes(") switch their role from string delimiters to string contents and vice versa.
Also, these commands grow very fast. After a few repetitions, they'll quickly fill the RAM as well as the hard disk (because of the command history file).
This sequence describes the number of bangbangs (!!) of each command.
|
|
LINKS
|
|
|
FORMULA
|
a(0) = 1, a(1) = 2, a(2) = 2, a(3) = 3, a(4) = 5, and for n >= 5, a(n) = 4*p(n) + 2*q(n) + 1 where p(5) = 2, q(5) = 4, and p(n+1) = 3*p(n)^2 + 2*p(n) + p(n)*q(n) and q(n+1) = 2*p(n)^2 + 2*p(n)*q(n) + 2*q(n).
|
|
EXAMPLE
|
For n = 4 the value a(4) = 5 is the number of bangbangs (!!) in the following command:
: ": ': ": '!!'" ': ": ': ": '!!'" '!!''" '!!'''" '!!'
|
|
PROG
|
(Python)
for i, ai in enumerate([1, 2, 2, 3, 5]):
....print '%d %d' % (i, ai)
p, q = 2, 4
for i in range(5, 15):
....print '%d %d' % (i, 4*p + 2*q + 1)
....p, q = 3*p*p + 2*p + p*q, 2*p*p + 2*p*q + 2*q
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|