【发布时间】:2020-03-02 08:07:18
【问题描述】:
我有一个带有内容的 openvpn 状态文件:
OpenVPN STATISTICS
Updated,Tue Nov 5 16:45:50 2019
...
我想在我的脚本中解析更新时间,以了解 vpn 是否开启。
这是我的脚本:
#!/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.
【问题讨论】:
-
可能有更好的方法来做到这一点。激活时,vpn 应该在您的路由表中有一个条目。当 vpn 启动时尝试
netstat -anr,然后在未启动时再次尝试。我没有运行 OpenVPN,否则我会检查 -
引用你的变量。
-
grep foo | awk '{print}'是一种反模式。请改用awk '/foo/{print}'。也谷歌 UUOC。 -
尝试以这种方式更改
date:date -d "$logDate" +"%s"
标签: bash shell awk terminal epoch