-1

Приведенный ниже сценарий предназначен для того, чтобы дать мне счетчик рабочего времени до истечения срока действия пароля для тестового пользователя, который я затем помещу в команду, которая отправляет электронное письмо с пороговым значением, которое будет определено, и записывает инструкцию в /var/log/messages , Проблема в том, что переменная $i не может быть разделена на 86400. Это должно конвертировать секунды обратно в дни. Заранее спасибо за помощь.

#!/bin/bash

for i in { $(( ( $(date +%s --date "`chage -l testuser | 
                                     grep "Password expires" | 
                                     cut -d " " -f3,4,5`") \
               ) - $(date +%s) )) } ;
do [ expr $i \ 86400 ]
done

exit 0

1 ответ1

-1

Математическая логика вашего кода для деления на 86400 такова:

[ expr $i \ 86400 ]

Это \ обратная косая черта, а не символ деления, который является косой чертой (/), поэтому просто измените его следующим образом, и все будет хорошо:

[ expr $i / 86400 ]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .