4 ms·
P ./cool.sh: line 31: bc: command not found ./cool.sh: line 34: bc: command not found ./cool.sh: line 37: bc: command not found E ./cool.sh: line 31: bc: comman
by lloydatkinson 3mo ago
P
./cool.sh: line 31: bc: command not found
./cool.sh: line 34: bc: command not found
./cool.sh: line 37: bc: command not found
E
./cool.sh: line 31: bc: command not found
./cool.sh: line 34: bc: command not found
./cool.sh: line 37: bc: command not found
Very wow. Shame they assumed everyone has "bc"...
- greazy 3mo agoWhich distro are you running? Perchance did you run the shell script in alpine Linux (docker)?
- piacos_ 3mo agoit doesn't seem to be installed on my endeavouros laptop
- deleted 3mo ago[deleted]
- lloydatkinson 3mo agoDebian.
- cb321 3mo agoThere is a python3 variant in this thread [1], but if that is not "standard enough" (as someone else may have mentioned bash itself is not POSIX), this awk would also work { Warning - this awk is 1000s of times faster than the bash. So, you really probably want that sleep { and sure 100s of times faster yet may be possible. } }: #!/usr/bin/awk -f BEGIN { # Split on spaces so multi-byte utf8 works nText = split("♥ P E A C E ♥ F O R ♥ A L L", tmp, " ") for (i = 0; i < nText; i++) text[i] = tmp[i + 1] color0 = 12; color1 = 208 # xterm-256 color cube range nColor = color1 - color0 # Could be a pretty gradient w = ENVIRON["COLUMNS"]; if (w == "") w = 80 h = ENVIRON["LINES"]; if (h == "") h = 24 freq = 0.2 for (t = 0; 1; t++) { x = int(w/2 + w/4*sin(t*freq) + 0.5) # x pos ~ sine color = color0 + int((nColor*t)/h)%nColor # cycle colors ch = text[t % nText] # cycle chars printf("%*s\033[38;5;%dm%s\033[m\n", x, "", color, ch) fflush() # system("sleep 0.1") # awk has no builtin sleep } } As to "bug reports", the T-shirt published script also fails with LC_ALL=C for me as mentioned else-thread. FWIW, I think ancient practice to reach for `bc` instead of `awk` or even the arithmetic built into shells often annoys. The only reason I keep `bc` installed at all is to compile Linux kernels. Someone had some patch set to Linux to eliminate this very dependency many years ago now. [1] https://news.ycombinator.com/item?id=48830669 https://news.ycombinator.com/item?id=48830669
- em500 3mo agoWhy would that be a shame? "bc" is a mandatory POSIX command, while /bin/bash isn't (/bin/sh is the standard).
- deleted 3mo ago[deleted]
- comradesmith 3mo agoYou are fun.
- lloydatkinson 3mo agoAre we really at the "redditor insult" type comments stage of HN now? There is nothing wrong with saying a piece of code is broken.
- deleted 3mo ago[deleted]
- deciduously 3mo agoBroken seems a little hyperbolic, it has an implicit dependency on a standard POSIX tool.
- lloydatkinson 3mo agoI suppose, but my Debian didn’t seem to ship with it.