text: #!/data/data/com.termux/files/usr/bin/sh
  set -u
  
  PARAM_LIMIT=10
  PARAM_OFFSET=0
  PARAM_TYPE=inbox
  PARAMS=""
  
  SCRIPTNAME=termux-sms-list
  
  SUPPORTED_TYPES="all|inbox|sent|draft|outbox"
  show_usage () {
      echo "Usage: $SCRIPTNAME [-d] [-l limit] [-n] [-o offset] [-t type]"
      echo "List SMS messages."
      echo "  -d         show dates when messages were created"
      echo "  -l limit   offset in sms list (default: $PARAM_LIMIT)"
      echo "  -n         show phone numbers"
      echo "  -o offset  offset in sms list (default: $PARAM_OFFSET)"
      echo "  -t type    the type of messages to list (default: $PARAM_TYPE):"
      echo "             $SUPPORTED_TYPES"
      exit 0
  }
  
  while getopts :hdl:t:no: option
  do
      case "$option" in
          h) show_usage;;
          d) PARAMS="$PARAMS --ez show-dates true";;
          l) PARAM_LIMIT=$OPTARG;;
          n) PARAMS="$PARAMS --ez show-phone-numbers true";;
          o) PARAM_OFFSET=$OPTARG;;
          t) PARAM_TYPE=$OPTARG;;
          ?) echo "$SCRIPTNAME: illegal option -$OPTARG"; exit 1;
      esac
  done
  shift $((OPTIND-1))
  
  if [ $# != 0 ]; then echo "$SCRIPTNAME: too many arguments"; exit 1; fi
  
  case "$PARAM_TYPE" in
  	all) PARAM_TYPE=0 ;;
  	inbox) PARAM_TYPE=1 ;;
  	sent) PARAM_TYPE=2 ;;
  	draft) PARAM_TYPE=3 ;;
  	outbox) PARAM_TYPE=4 ;;
  	*) echo "$SCRIPTNAME: Unsupported type '$PARAM_TYPE'. Use one of: $SUPPORTED_TYPES"; exit 1 ;;
  esac
  
  PARAMS="$PARAMS --ei offset $PARAM_OFFSET --ei limit $PARAM_LIMIT --ei type $PARAM_TYPE"
  /data/data/com.termux/files/usr/libexec/termux-api SmsInbox $PARAMS
  