# Calculate N!

echo \$(( \$(echo 1 "* "{2..10}) ))

2
2011-02-10 17:09:28

## 4 Alternatives + Submit Alt

• 8
seq -s* 10 |bc
· 2011-02-10 08:03:19

• 1
seq 10 | paste -sd* | bc
· 2011-02-09 19:56:12
• Same as the seq/bc solution but without bc.

1
echo \$((\$(seq -s* 10)))
· 2011-02-10 18:44:53
• More readable version of factorial calculation using standard desktop calculator instead of bc.

0
dc -e '10 [q]sq[dd1=q1-lxx*]dsxxp'
· 2011-02-16 19:00:21

### What Others Think

calculates N! for values between 2 and 25. `echo \$(( \$(echo 1 "* "{2..26}) ))` -1569523520172457984 Kinda interesting. I'd be impressed if you could make a pascal's triangle in a one liner...
bartonski · 633 weeks and 1 day ago
Interesting? I guess you are running a super computer.
RanyAlbeg · 633 weeks and 1 day ago
Sorry. No supercomputers here. I did find the use of `"* "{2..10}` to create `* 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10` to be somewhat novel.
bartonski · 633 weeks and 1 day ago
the pascal's triangle is a hard task... but i'm trying... I'm so close... `lines=6; eval echo -e "{1..\$lines}\\\n" | while read i; do eval "array\$i=( \$(echo {1..\$i} ) ); echo \\${array\$((i-1))[@]}"; done;` with this I can recover the array from previous line... with some more work I can do it.
glaudiston · 633 weeks and 1 day ago
@glaudiston I've solved it with a couple of nested for loops, but I'm still waiting for my command to be moderated.
flatcap · 633 weeks and 1 day ago
@bartonski, done, a one line pascal's triangle; `l=10;for((i=0;i<\$l;i++));do eval "a\$i=(\$(pv=1;v=1;for((j=0;j<\$l;j++));do [ \$i -eq 0 -o \$j -eq 0 ]&&{ v=1 && pv=1; }||v=\$((pv+a\$((i-1))[\$((j))]));echo -n "\$v ";pv=\$v;done;));";eval "echo \"\\${a\$i[@]}\"";done | column -t;`
glaudiston · 633 weeks ago

### What do you think?

Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?

You must be signed in to comment.

### What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.