Получить эпоху из строки в скрипте - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть файл статуса openvpn с содержанием:

OpenVPN STATISTICS
Updated,Tue Nov  5 16:45:50 2019
...

И я хочу проанализировать время обновления в моем скрипте, чтобы узнать, включен ли vpn.

Это мойscript:

#!/usr/bin/env bash

logDate=$(sudo cat /home/ubuntu/vpn/openvpn-status.log | grep Update| awk -F "," '{print $2}') 

logEpoch=$(date -d $logDate +"%s")

Когда я запускаю те же команды в терминале, он работает нормально, но когда я запускаю скрипт, он выдает ошибку:

date: extra operand ‘5’
Try 'date --help' for more information.

1 Ответ

1 голос
/ 06 ноября 2019

Я думаю, вам нужно добавить кавычки, когда используете ваши переменные. Скрипт должен работать с:

#!/usr/bin/env bash

logDate=$(sudo cat /home/ubuntu/vpn/openvpn-status.log | grep Update| awk -F "," '{print $2}') 

logEpoch=$(date -d "$logDate" +"%s")
echo "$logEpoch"

Объяснение здесь: mywiki.wooledge.org / Quotes - @Ed Morton

...