Bash Shell执行目录所有脚本

你想要执行一系列脚本,但是脚本清单并不固定,新脚本不停地加入其中,可你也不想总是修改清单。

解决方案

将要执行的脚本全都放进一个目录,让 bash 逐一执行。不用保存脚本清单,用该目录的内容作为清单即可。以下脚本会执行特定目录中的所有可执行文件。

for SCRIPT in /path/to/scripts/dir/*
do
    if [ -f "$SCRIPT" -a -x "$SCRIPT" ]
    then
        $SCRIPT
    fi
done

讨论

变量 $SCRIPT 会依次获得通配符 * 匹配到的各个文件名,该通配符能够匹配指定目录下的所有内容(文件名以点号开头的隐藏文件除外)。如果匹配到的是文件(由 -f 测试)且具有执行权限(由 -x 测试),那么 shell 会尝试执行此脚本。

在这个简单示例中,我们无法为执行的脚本指定参数。该脚本也许能够很好地满足你的个人需求,但算不上稳健。有些人可能认为这很危险,但我们希望你能从中先了解一下脚本编程的功用。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!