Anything fun to do with bash skills?

I’m in the process of studying bash. Problem is, my Linux Mint install is good enough as is.

So, I’m wondering what fun projects I could do, beyond designing a computer game?

Any ideas?

It depends on what sort of things you are interested in.
Find something you often do at the CLI, and automate it with a script… that is what shell scripts are meant for.
Anything more than that needs a programming language… especially if it involves maths. Scripts are not good for calculation problems.

4 Likes

Has to do with a game, but a friend and I coded the game Master Mind. We did it just to learn Bash and to have a little fun.

5 Likes

Came here to say the same thing. Glad to see it’s already suggested :slight_smile:

5 Likes

For sh!ts 'n g!ggles - I wrote a shell script to convert a folder of FLAC (i.e. a folder for an album) files to a new folder with the FLAC files converted to 320 kbps MP3 files.

Now - whenever I want - I can slowly, at my leisure, start deleting folders of MP3 albums, where I already have the FLAC version of the album. I don’t need both copies. I hardly EVER need MP3 versions of albums either - the only use case is to put on a thumb drive to play in the car - as Toyota audio player only recognises MP3 files, nor FLAC.

And I can slowly remove “duplicates”…

It was fun anyway…

3 Likes

Its also a good example of the right use for a script… do something that would be tedious by hand

I dont think scripts are the thing for large projects… use Perl or Python or a compiled language for that

4 Likes

I put together an internet access monitor that logs any internet service downtime. I coupled that with an ac/dc monitor script that logs any power interruptions on a laptop, doesn’t work on desktops of course. That tells me when we lose power which of course takes down the modem so I’m not blaming my ISP for down times not their fault.
I then put together a speed test script that runs every four hours. That shows me if my provider throttles my service or when there’s any high usage in the area. I had tried to set it up to test between wired and wireless but that switching caused minor trouble so I only test on whichever connection is active. I did this when we had Xfinity and we lost connectivity way too often.
Another script deletes log files over 30 days old after archiving one day’s worth of log files every two weeks.
I made my own backup using tar and rsync to an external drive and timed it to run once every two weeks. It deletes old tar backups.
I made my own system update utility with a couple tweaks to clean up some things.
I’ve also made them portable so that my wife can use them.

5 Likes

I always found it difficult to find the motivation for a programming project, I didn’t really need.

In the end, most fun stuff (say: a tetris game for the terminal, a weather app or things like that) has already been build and usually better than I could.

If the goal is to improve your bash skills, you might find solving programming competition exercises (e.g. Advent of Code) challenging and rewarding at the same time.

5 Likes