我正在写一个看起来像这样的shell脚本:
for i in $ACTIONS_DIR/*
do
if [ -x $i ]; then
exec $i nap
fi
done
Run Code Online (Sandbox Code Playgroud)
现在,我想要实现的是列出$ ACTIONS_DIR中的每个文件以便能够执行它.$ ACTIONS_DIR下的每个文件都是另一个shell脚本.
现在,这里的问题是在使用exec之后脚本停止并且不会到达下一个文件.任何想法为什么会这样?
exec将 PID 的控制权转移给您正在执行的程序。这主要用于其唯一目的是为该程序设置选项的脚本。一旦exec被击中,脚本中它下面的任何内容都不会被执行。
此外,您应该尝试一些引用技巧:
for i in $ACTIONS_DIR/*
do
if [ -x "$i" ]; then
"./$i" nap
fi
done
Run Code Online (Sandbox Code Playgroud)
您还可以考虑使用find(1)此操作:
find $ACTIONS_DIR \
-maxdepth 1 \
-type f \
-perm +0111 \
-exec {} nap \;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6778 次 |
| 最近记录: |