Проблемы с получением Bash-скрипта для правильного деления числового значения

Приведенный ниже скрипт предназначен для того, чтобы дать мне счетчик рабочего времени до истечения срока действия пароля для тестового пользователя, который я затем помещу в команду, которая отправляет электронное письмо с пороговым значением, которое будет определено, и записывает оператор в /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 ответ

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

[ expr $i \ 86400 ]

Тот \ является обратной косой чертой, а не символом деления, который является косой чертой (/) так что просто поменяйте его вот так и вам должно быть хорошо

[ expr $i / 86400 ]
Другие вопросы по тегам