Встановив cygwin, написав мій сценарій, перевірив успішно. Однак, коли я йду виконувати його як заплановане завдання Windows, воно не справляється. Подальше копання показує, що не всі програми доступні при виконанні сценарію таким чином. Наприклад, запуск Mintty та введення ls відображатиме вміст мого каталогу. Запуск bash.exe з Windows CLI помістить мене у підказку "BASH", але ls не є визнаною командою.
Я спробував стандарт
c:\cygwin\bin\bash.exe -l -c "/home/user/logoff.sh"
а також
c:\cygwin\bin\mintty.exe /bin/bash -l -c "/home/user/logoff.sh"
Я додав команду echo, яка видає текстовий файл, і це працює, тому я знаю, що сценарій викликається. Здається, проблема полягає в тому, що різні програми недоступні, або не подобаються трубопроводи, які я роблю.
Це сценарій, який я намагаюся запустити.
for user in user1 user2 user3 ;
do
id=$(query user $user 2>> /dev/null | awk '{ print $3 }' | sed -e '/ID/ d')
if [[ "$id" =~ ^[1-9][0-9]?$ ]]; then
logoff $id
echo "$user was logged off" >> logg_off.log
fi
done
Якісь ідеї?
EDIT
- Я жир переніс ім'я файлу в заплановане завдання, через що його не вдалося запустити.
- Досі не впевнений, чому сценарій не вдалося закінчити. Я видалив зі списку всіх, крім одного користувача, і все працює, як очікувалося. Доведеться почекати до цього вечора, щоб перевірити, чи я можу вийти з інших користувачів за один прохід.
/usr/bin/awk
тощо