2

我正在尝试创建一个脚本来检查 /mnt/sda bc d... 是否存在 shell 脚本。当它找到脚本时,它需要执行它。这是我到目前为止所拥有的:

for x in a1 a2 b1 b2 c1 c2 d1 d2 e1 e2 f1 f2; do /mnt/sd$x/1_drive_check.sh; done

这没关系,但它实际上会尝试在每个挂载点运行脚本。通常我不会在意,但我需要在控制台中显示最少量的信息。

我知道检查文件是否存在的命令。

if [ -f 1_drive_check.sh ] then
echo 1_drive_check.sh exists!
fi

我不知道怎么做的就是将两者合并在一起,看看1_drive_check.sh是否存在于/sda1或sda2或sdb1等中,然后执行它。我厌倦了热胶枪,但我烧伤了自己。

仅供参考,我在这方面真的很陌生,因为我习惯于定期使用 VBS。

4

2 回答 2

2

除了for ...; do if [ ... ]; then /mnt/sd$x/1_drive_check.sh; fi;done解决方案,您还可以:

find /mnt/ -maxdepth 2 -name '1_drive_check.sh' -executable -exec {} \;

... 保存手动添加驱动器。

于 2013-03-04T20:16:54.383 回答
1

只是一个想法...

for script in /mnt/sd[a-f]{1,2}/1_drive_check.sh
do
    $script
done

Only finds the scripts that are actually there.

于 2013-03-04T20:17:54.437 回答