在我的下标中迭代我的脚本有一些困难。问题似乎是我运行它,它只迭代我的$@列表的第一个索引。我认为它在继续到下一个文件之前会停止并等待更改。我下标的要点是使用我的“单文件脚本”同时检查多个文件。如果我更改了我的文件,它将继续到下一个索引,但如果我允许的话则不会。我希望我说得很清楚。谢谢!
脚本1:
#!/bin/bash
timestamp() {
date +"%T"
}
FILE=$1
timeer=$(stat -f "%Sm" $FILE)
myDate=$(date +%b" "%d" "%H:%M:%S" "%Y)
if [ -f $FILE ]; then
timestamp
echo "Filen{$FILE} ble opprettet"
fi
while :
do
Atimeer=$(stat -f "%Sm" $FILE)
if [[ "$Atimeer" != "$timeer" && -f $FILE ]]; then
timestamp
echo "Filen ble endret!!!"
exit 130
fi
if [ ! -f "$FILE" ]; then
echo "Filen {$FILE} ble slettet.."
exit 130
fi
done脚本2:
#!/bin/bash
if [ $# -lt 1 ]; then
echo "Not enough arguments, Call this script with"
echo "Write: ${0} <file.name>"
exit 1
fi
while :
do
for i in "${@}"
do
echo $i
sh filkontroll.sh "$i"
done
sleep 3
done发布于 2017-09-04 12:42:17
通常,shell脚本将等待每个命令完成,然后再转到下一个命令。这就是在你的script2中发生的事情
sh filkontroll.sh "$i"等这一切结束才能继续前进。
如果要同时运行多个命令,则应该将命令放在后台,方法是将&放在行尾,如下所示
sh filkontroll.sh "$i" &或者考虑使用像GNU parallels这样的工具进行并行化。
https://stackoverflow.com/questions/46037153
复制相似问题