linux - 用于检查电话号码的函数内的 Unix KornShell 脚本 bool 值

标签 linux shell unix ksh

我在 Unix 中写了这个脚本:

function addinfo {
  echo "Please enter your LAST Name: "
  read last
  echo "Please enter your FIRST Name: "
  read first
  echo "Please enter your PHONE number as XXX-XXX-XXXX: "
  read phone
  if [ $phone != ???-???-??? ]; then
    echo "Please only enter your as XXX-XXX-XXXX"
    read phone
  else
    echo $last + $first + $phone >> asg7phonebook
  if
}

我收到与最后一个括号相关的错误代码。

  1. bool 条件可以在 Unix 函数中工作吗?
  2. 如何让我的功能检查用户是否输入了 XXX-XXX-XXXX(其中“X”是他们的电话号码)作为有效号码输入?我想阻止用户输入 23435-34222 作为他们的号码或 1234567890 作为他们的号码。
  3. 我的语法正确吗?

最佳答案

我发现您的方法存在一些问题,

#!/usr/bin/env ksh

addinfo() {
  echo "Please enter your LAST Name: "
  read last
  echo "Please enter your FIRST Name: "
  read first
  echo "Please enter your PHONE number as XXX-XXX-XXXX: "
  read phone
  # Using a while loop on the correct pattern check.
  while [[ "$phone" != [0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] ]]
  do
      echo "Please enter your PHONE number as XXX-XXX-XXXX (only): "
      read phone
  done
  echo $last + $first + $phone >> asg7phonebook
}

addinfo

关于linux - 用于检查电话号码的函数内的 Unix KornShell 脚本 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23507194/

相关文章:

linux - 避免从 Linux 上的可执行文件中导出符号

c - 有没有办法将 Linux 管道设置为非缓冲或行缓冲?

linux - 括号内的grep内容

linux - 自动化 bash 脚本

shell - Makefile 在指定目录中找不到输入文件

linux - 需要帮助 shell 脚本来过滤所有者机器列表

java - 序言中不允许出现内容 - Unix 中发生异常,但使用相同代码的 Windows 中则不会发生异常

unix - 如何在 Unix 上使用 CVS

c - linux 中 C 语言的 sound() 头文件?

linux - 在远程工作站中提交没有队列管理器的作业