Shell脚本条件重构

Shell script condition refactoring

如何重构下一行以使用 OR 运算符加入条件?

if [[ "$lexer_date" > "$lexer_ts_date" ]]; then
    generate_grammar
elif [[ "$parser_date" > "$parser_ts_date" ]]; then
    generate_grammar
fi

像这样:

if lexer_date > lexer_ts_date or parser_date > parser_ts_date: generate_grammar

or 运算符是 ||

if [[ "$lexer_date" > "$lexer_ts_date" || "$parser_date" > "$parser_ts_date" ]]; then
    generate_grammar
fi

((lexer_date>lexer_ts_date|parser_date>parser_ts_date)) && generate_grammar

测试脚本:

$ cat test
#!/bin/bash

lexer_date=2
lexer_ts_date=1
parser_date=2
parser_ts_date=1

generate_grammar(){ echo ok; }

((lexer_date>lexer_ts_date|parser_date>parser_ts_date)) && generate_grammar

测试:

$ ./test
ok