我正在写一个shell脚本,我有一个字符串:
2 00:03 2 01:03 2 02:03 2 03:03 2 04:03 2 05:03 2 06:03 2 07:03 2 08:03 2 09:03 2 10:03 2 11:03 2 12:03 2 23:03
前导2是其后时间戳的计数。现在,我必须验证每个时间戳记是否准确计数了两次。
最后,我希望结果是对还是错。
找不到自己的解决方案来分离字符串或进行任何检查。
答案 0 :(得分:1)
特定于bash的解决方案:
validate () ( # executing function in a subshell
set -f
set -- $1
local -i n=$1
shift 2
while (( $# > 0 )); do
(( $1 == n )) || return 1
shift 2
done
)
然后,我们可以做
$ s="2 00:03 2 01:03 2 02:03 2 03:03 2 04:03 2 05:03 2 06:03 2 07:03 2 08:03 2 09:03 2 10:03 2 11:03 2 12:03 2 23:03"
$ if validate "$s"; then echo OK; else echo bad; fi
OK
$ if validate "1 foo 2 bar"; then echo OK; else echo bad; fi
bad