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

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

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, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

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!