我的OS X工作站上有一个充满* .command文件的文件夹。
(对于那些不知道的人,* .command文件只是在专用终端窗口中启动和运行的shell脚本。)
我已将此文件夹拖到我的Dock上以使用“堆栈”,因此我可以通过几次点击方便地访问和启动这些脚本。
我想在堆栈中添加一个新的“run-all.command”脚本,该堆栈运行同一堆栈中的所有* .command文件,但它本身就有明显的例外。
My Bash chops太生锈了,无法回想起如何获取* .command文件的列表,迭代它们,跳过正在运行的文件,然后执行每个文件(在这种情况下我会使用“open”命令,所以每个* .command在其自己的专用终端窗口中打开。)
有人可以帮帮我吗?
答案 0 :(得分:3)
使用@ bbg的原始脚本作为起点并结合来自@Jefromi和@Dennis Williamson的评论,并解决了一些目录前缀问题,我得出了这个工作版本:
#!/bin/bash
for x in "$(dirname $0)"/*.command
do
if [ "$(basename $x)" != "$(basename $0)" ]
then
open "$x"
fi
done
答案 1 :(得分:2)
这样的事情怎么样:
#! /bin/bash
for x in ./*
do
if [ "$x" != "$0" ]
then
open $x
fi
done
其中$ 0自动保存正在运行的脚本的名称