Tef*_*Ted 5 bash shell scripting command loops
我的 OS X 工作站上有一个装满 *.command 文件的文件夹。
(对于那些不知道的人,*.command 文件只是在专用终端窗口中启动和运行的 shell 脚本)。
我已将此文件夹拖到我的 Dock 上以使用“堆栈”,因此我可以通过几次点击方便地访问和启动这些脚本。
我想向堆栈中添加一个新的“run-all.command”脚本,该脚本在同一堆栈中运行所有 *.command 文件,但明显例外。
我的 Bash 排版太生疏了,无法回忆起如何获取 *.command 文件的列表、迭代它们、跳过正在运行的文件并执行每个文件(在这种情况下,我将使用“打开”命令,因此每个 *.command 文件。命令在其自己的专用终端窗口中打开)。
有人可以帮我吗?
使用 @bbg 的原始脚本作为起点,并结合 @Jefromi 和 @Dennis Williamson 的评论,并解决了更多目录前缀问题,我得到了这个工作版本:
#!/bin/bash
for x in "$(dirname $0)"/*.command
do
if [ "$(basename $x)" != "$(basename $0)" ]
then
open "$x"
fi
done
Run Code Online (Sandbox Code Playgroud)