Bash case语句:检查字符串是否以数字结尾

Bash Case statement: check whether string ends in number

在 case 语句中,我想检查“--sn”命令后是否跟有数字 (1-254)。 我以为我只是使用 --sn*,但显然 * 不适用于数字?

case "" in
    --sn*    ) var=$(echo  | cut -dn -f2 )
             ;;
    *        ) break ;;
esac

知道怎么做吗?

试试这个:

#!/bin/bash

case "" in
  --sn*[0-9]) echo " ends with a number"
              ;;
  *)          echo " does not end with a number"
              ;;
esac