Я пишу небольшой скрипт для запуска скриптов, созданных в фоновом режиме. Этот скрипт работает в цикле и должен запустить созданный файл, когда он найден в указанном каталоге.File loop with wildcard
Он работает, когда в каталоге находится только один файл, созданный скрипт удаляет себя, когда он завершен. Но когда два или более скриптов создаются одновременно, он не запускает скрипты.
Я получаю сообщение об ошибке: ожидается бинарный оператор
#!/bin/bash
files="/var/svn/upload/*.sh"
x=1
while :
do
echo Sleeping $x..
if [ -f $files ]
then
for file in $files
do
echo "Processing $file file..."
sh $file
echo $(date +%d-%m-%y) $(date +%H:%M:%S) - Sleep $x - Script $f >>/var/log/upload.log
x=0
wait
done
fi
x=$(($x + 1))
sleep 1
done
Я создал работу вокруг Wich работает без каких-либо проблем:
#!/bin/bash
files="/var/upload/*.sh"
x=1
while :
do
count=$(ls $files 2> /dev/null | wc -l)
echo Sleeping $x..
if [ "$count" != "0" ]
then
for file in $files
do
echo "Processing $file file..."
sh $file
echo $(date +%d-%m-%y) $(date +%H:%M:%S) - Sleep $x - Script $f >>/var/log/upload.log
x=0
wait
done
fi
x=$(($x + 1))
sleep 1
done
Добро пожаловать в SO! Если ошибка относится к определенной строке вашего кода, можете ли вы отредактировать сообщение, чтобы указать, какой из них? – Derek
Ошибка в строке: if [-f $ files] – user2965857