如何在shell脚本中的if语句中使用正则表达式? (从bash脚本转换为常规shell脚本)

时间:2018-03-24 21:04:23

标签: bash sh

我一直在用#!/bin/bash shebang为一个学校项目写一个剧本,但我几个小时前发现,shebang必须是#!/bin/sh。你能告诉我如何格式化第二个if条件,以便它与每个shell脚本兼容吗?

if [[ -z $date ]]; then
   echo "No date argument"
   exit 1
elif [[ $date =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
   return

1 个答案:

答案 0 :(得分:3)

使用GNU grep。

替换

[[ $date =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]

echo "$date" | grep -q -E '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'

或使用

echo "$date" | egrep '^[0-9]{4}-[0-9]{2}-[0-9]{2}$' >/dev/null