How to: Run All Shell / Perl / Python Scripts in a Directory

in Categories Linux, Shell scripting, Sys admin, Tips, UNIX last updated October 12, 2007

I’ve directory called /home/vivek/scripts/daily with over 25 perl / shell / python scripts for managing daily tasks. One day for some weird reason my crond died and I did not noticed the incident for 2 days.

Now crond is started and I’d like to run all those scripts. Here is a quick for loop running all scripts in a directory called ~/scripts/daily/:

for s in ~/scripts/daily/*;do [ -x $s ] && $s || : ;done

Above script will run each and every executable script it finds in a directory.

Update: As pointed out by jeff (see below), you can use run-parts shell script for the same purpose:
$ run-parts ~/scripts/daily/*

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

Share this on (or read 2 comments/add one below):

2 comment

  1. Or a *much* easier way:
    run-parts ~/scripts/daily/

    Your kung foo is good, but you will never beat the Tekken fighters.

  2. Thanks for the tip, post has been updated.

    >Your kung foo is good, but you will never beat the Tekken fighters.
    Heh .. Gotta love Tekken fighters!

    Have a question? Post it on our forum!