Sponsored Content
Operating Systems OS X (Apple) A simple plaything for a 19 month old and higher. Post 303021018 by wisecracker on Thursday 2nd of August 2018 06:01:51 PM
Old 08-02-2018
A simple plaything for a 19 month old and higher.

This thread today reminded me of it:
Larger window
This is OSX 10.13.6 and greater centric only.
This expands the terminal window on the fly in bash.
You initially need to put the standard terminal window to the top left hand side as far as it goes.
I wrote this for my 19 month old grandson, (17-06-2018), as he loves punching the computer keyboard.
It is a simple keyboard plaything that prints a coloured squared in a random position inside an expanded terminal window. The window size is for a MBP 13 inch device so that is the reason for the odd terminal size.
If the first argument is set to [Yy] then a single alpha-numeric character is spoken so little one can learn said characters as well as printing the random coloured square. If the second argument is set to [Yy] then you can write a sentance of not more than 40 characters to aid in speech learning also with the random coloured square.
If there are no arguments then just the random coloured square is generated per keystroke.
Code:
#!/bin/bash
# Usage: Baby_Play [sppech<Yy>] [word<Yy>]<CR>
# Examples:
# Baby_Play<CR>
# Baby_Play Y y<CR>
#
# For OSX Sierra and above.
# Place default terminal in upper left hand corner.
# Auto expand to maximum size with dock and top bar showing.
printf "%b" "\x1B[8;48;179t"
# Write into terminal header...
printf "%b" "\x1B]0;Baby_Play, press the Delete or Esc, (and Enter), keys to QUIT.\x07"
clear
echo ""
echo "Usage: Baby_Play [speech<Yy>] [word<Yy>]<CR>"
echo ""
echo 'Press the Delete or Esc, (and Enter), keys at any time to QUIT Baby_Play...'
printf "\nPress ENTER/RETURN to continue:- "
read -r -n 1 char
clear
char="Baby_Play_Original_(C)2017,_B.Walker_Licence_CC0."
speech="$1"
word="$2"
colour=$(( ( $RANDOM % 8 ) + 40 ))
x=$(( $RANDOM % 174 ))
y=$(( $RANDOM % 43 ))
escape=$'\x1B'
backspace=$'\x7F'
# Thanks to Corona688 for the stty section below.
inkey() { char="" ; stty -icanon min 0 time 1 ; char=$( dd count=1 2> /dev/null ) ; }
printf "%b" "\x1B["$(( $y + 2 ))";"$(( $x + 3 ))"f\x1B[0;"$colour"m  \x1B[0m"
while true
do
	printf "%b" "\x1B[1;1f\x1B[0m "
	if [ "$word" = "Y" ] || [ "$word" = "y" ]
	then
		printf "Enter word(s), 40 characters maximum:- "
		read -r -n 40 char
	else
		inkey
	fi
	case $char in
		[''${escape}${backspace}])
			break
		;;
		" "|*[0-9a-zA-Z]*)
			colour=$(( ( $RANDOM % 8 ) + 40 ))
			x=$(( $RANDOM % 174 ))
			y=$(( $RANDOM % 43 ))
			if [ "$speech" = "Y" ] || [ "$speech" = "y" ]
			then
				say -v Daniel "$char"
			fi
			printf "%b" "\x1B["$(( $y + 2 ))";"$(( $x + 3 ))"f\x1B[0;"$colour"m  \x1B[0m"
			printf "%b" "\x1B[1;1f\x1B[0m                                                                                "
		;;
	esac
done
# EXIT comes here.
printf "%b" "\x1B[8;24;80t\x1Bc\x1B[2J\x1B[H\x1B[0m"
printf "%b" "\x1B]0;\x07"
clear
echo "Terminal reset back to original state."
exit 0

Have fun little ones.
 

9 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Backgrounding process with higher priority

I have been troubleshooting a mysterious performance problem with the nightly batch programs on our primary system for quite some time and just found something very interesting. All batch processes are running with a nice value of 24. I don't know what the default is on other systems but I do know... (3 Replies)
Discussion started by: keelba
3 Replies

2. UNIX for Dummies Questions & Answers

grep 2000 and higher

i have content that looks like this: 0003326050 A E LITHO 0023823422 AMERICAN RED CROSS 0005713642 ARUP LABORATORIES 0003206450 CAEL 0002519930 CARDINAL HEALTH 0002619063 FISHER HEALTHCAR 0065203177 OWENS & MINOR INC 0016552938 STAPLES INC 0000002001 MSC... (8 Replies)
Discussion started by: tjmannonline
8 Replies

3. UNIX for Dummies Questions & Answers

print previous month (current month minus 1) with Solaris date and ksh

Hi folks month=`date +%m`gives current month Howto print previous month (current month minus 1) with Solaris date and ksh (7 Replies)
Discussion started by: slashdotweenie
7 Replies

4. Shell Programming and Scripting

if test for higher value between 2 decimal numbers

Hi I would like to test for a max number value. It may be a decimal so I know I have to pipe into bc. I just cannot get the syntax for this to work. I cannot get passed an error with the bracket - see below. Any help appreciated. Regards Ewan This works: /export/home/ewan> cat... (5 Replies)
Discussion started by: emjs
5 Replies

5. Shell Programming and Scripting

Script to counting a specific word in a logfile on each day of this month, last month etc

Hello All, I am trying to come up with a shell script to count a specific word in a logfile on each day of this month, last month and the month before. I need to produce this report and email it to customer. Any ideas would be appreciated! (5 Replies)
Discussion started by: pnara2
5 Replies

6. Shell Programming and Scripting

Convert From Month Number to Month Name

Hi, I have a script that accepts an input date from the user in yyyy-mm-dd format. I need to get the mm-dd part and convert it to month name. example: 2011-11-15 I want that to become "Nov 15" I don't have the GNU date, I am using an AIX os. Thanks. (1 Reply)
Discussion started by: erin00
1 Replies

7. Shell Programming and Scripting

How to add decimal month to some month in sql, php, perl, bash, sh?

Hello, i`m looking for some way to add to some date an partial number of months, for example to 2015y 02m 27d + 2,54m i need to write this script in php or bash or sh or mysql or perl in normal time o unix time i`m asking or there are any simple way to add partial number of month to some... (14 Replies)
Discussion started by: bacarrdy
14 Replies

8. Shell Programming and Scripting

Need last month files after 10th of every month

Hi, I need all file names in a folder which has date >= 10th of last month, Example : files in folder AUTO_F1_20140610.TXT BUTO_F1_20140616.TXT CUTO_F1_20140603.TXT FA_AUTO_06012014.TXT LA_AUTO_06112014.TXT MA_AUTO_06212014.TXT ZA_AUTO_06232014.TXT Output: AUTO_F1_20140610.TXT... (9 Replies)
Discussion started by: nani1984
9 Replies

9. UNIX for Dummies Questions & Answers

Remove when date is higher

Dear Masters, I need to eliminate lines from file input 2 when the date in column 1 more than date in column 1 in file input 1 input 1 20141101|USA|CANSEL|496420000 20141101|USA|CANUT|1069740000 20141101|USA|CANTENG|625920000 20141102|USA|CANUT|413180000 20141103|USA|CANSEL|1364245000... (5 Replies)
Discussion started by: radius
5 Replies
JOT(1)							    BSD General Commands Manual 						    JOT(1)

NAME
jot -- print sequential or random data SYNOPSIS
jot [-cnr] [-b word] [-p precision] [-s string] [-w word] [reps [begin [end [s]]]] DESCRIPTION
The jot utility is used to print out increasing, decreasing, random, or redundant data (usually numbers) one per line. The following options are available: -b word Just print word repetitively. -c This is an abbreviation for -w %c. -n Do not print the final newline normally appended to the output. -p precision Print only as many digits or characters of the data as indicated by the integer precision. In the absence of -p, the precision is the greater of the precisions of begin and end. The -p option is overridden by whatever appears in a printf(3) conversion following -w. -r Generate random data instead of sequential data, the default. -s string Print data separated by string. Normally, newlines separate data. -w word Print word with the generated data appended to it. Octal, hexadecimal, exponential, ASCII, zero padded, and right-adjusted represen- tations are possible by using the appropriate printf(3) conversion specification inside word, in which case the data are inserted rather than appended. The last four arguments indicate, respectively, the number of data, the lower bound, the upper bound, and the step size or, for random data, the seed. While at least one of them must appear, any of the other three may be omitted, and will be considered as such if given as ``-''. Any three of these arguments determines the fourth. If four are specified and the given and computed values of reps conflict, the lower value is used. If fewer than three are specified, defaults are assigned left to right, except for s, which assumes its default unless both begin and end are given. Defaults for the four arguments are, respectively, 100, 1, 100, and 1, except that when random data are requested, s defaults to a seed depending upon the time of day. reps is expected to be an unsigned integer, and if given as zero is taken to be infinite. begin and end may be given as real numbers or as characters representing the corresponding value in ASCII. The last argument must be a real number. Random numbers are obtained through random(3). The name jot derives in part from iota, a function in APL. EXAMPLES
The command: jot - 42 87 1 prints the integers from 42 to 87, inclusive. The command: jot 21 -1 1.00 prints 21 evenly spaced numbers increasing from -1 to 1. The command: jot -c 128 0 prints the ASCII character set. The command: jot -w xa%c 26 a prints the strings ``xaa'' through ``xaz''. The command: jot -r -c 160 a z | rs -g 0 8 prints 20 random 8-letter strings. The command: jot -b y 0 is equivalent to yes(1). The command: jot -w %ds/old/new/ 30 2 - 5 prints thirty ed(1) substitution commands applying to lines 2, 7, 12, etc. The command: jot 0 9 - -.5 prints the stuttering sequence 9, 8, 8, 7, etc. The command: jot -b x 512 > block creates a file containing exactly 1024 bytes. The command: expand -`jot -s, - 10 132 4` sets tabs four spaces apart starting from column 10 and ending in column 132. The command: grep `jot -s "" -b . 80` prints all lines 80 characters or longer. SEE ALSO
ed(1), expand(1), rs(1), seq(1), yes(1), printf(3), random(3) BSD
January 5, 2010 BSD
All times are GMT -4. The time now is 08:12 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy