验证用户输入的参数合法性的shell脚本_linux shell

今天这个例子是 用来验证用户输入的参数的合法性的,程序并不复杂,如下所示:

#!/bin/sh
# validAlphaNum - Ensures that input consists only of alphabetical
# and numeric characters.

validAlphaNum()
{
 # Validate arg: returns 0 if all upper+lower+digits, 1 otherwise

 # Remove all unacceptable chars
 compressed="$(echo $1 | sed -e 's/[^[:alnum:]]//g')"

 if [ "$compressed" != "$input" ] ; then
  return 1
 else
  return 0
 fi
}

# Sample usage of this function in a script

echo -n "Enter input: "
read input

if ! validAlphaNum "$input" ; then  #// 这个有点巧妙,就是如果函数的返回值为1的话,则执行
 echo "Your input must consist of only letters and numbers." >&2
 exit 1
else
 echo "Input is valid."
fi

exit 0

就像上面所说这脚本流程和思路还是很简明的,就是讲你的输入用sed过滤后于原输入相比较,不相等则输入不合法。
值得注意的地方有
1) sed -e 's/[^ [:alnum:]]//g' ([:alnum:]是 大小写字母及数字的意思,这里sed的作用是将非大小写字母及数字过滤掉。
2) if ! validAlphaNum "$input" $input作为 函数的参数被调用,注意这里加了引号。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索参数合法性
shell 验证邮箱合法性、shell 脚本 参数、shell脚本传入参数、shell脚本传参数、shell脚本参数传递,以便于您获取更多的相关知识。

时间: 2024-09-21 08:16:03

验证用户输入的参数合法性的shell脚本_linux shell的相关文章

判断输入的日期是否正确的shell脚本_linux shell

今儿个讲得是判断输入的日期是否正确,有利用到我们之前03这个例子中的函数 下面是代码 #!/bin/sh # valid-date -- Validates a date, taking into account leap year rules. exceedsDaysInMonth() { case $(echo $1|tr '[:upper:]' '[:lower:]') in jan* ) days=31 ;; feb* ) days=28 ;; mar* ) days=31 ;; apr

Linux下实现SNMP一键安装的Shell脚本_linux shell

Net-SNMP是一个免费的.开放源码的SNMP实现,以前称为UCD-SNMP.SNMP 很多都用其安装之后,作为监控宝和阿里云的系统信息监控使用.下面就来分享linux下实现SNMP一键安装的shell脚本: #!/usr/bin/env bash export LC_ALL=C if [ "$(id -u)" != "0" ] then echo "This script. must be run as root" 1>&2 e

使用iconv批量改变文件编码的shell脚本_linux shell

这篇文章主要介绍了编写shell脚本,使用iconv批量改变文件编码的脚本代码,需要的朋友可以参考下. 用法示例: cd ~/workspace/XXXProject ~/iconv_shell.sh ./ *java 好了,直接上代码~~ #!/bin/bash if [ "$#" != "2" ]; then echo "Usage: `basename $0` dir filter" exit fi dir=$1 filter=$2 ech

一键备份gitolite服务器的Shell脚本_linux shell

运行一次就能够把gitolite服务器上的仓库备份到本地. 第一次运行会创建远程仓库的本地镜像, 以后每次运行会把本地镜像更新. 本程序只支持 ssh方式 其他的git server貌似不会在 ssh git@xxx 的时候返回repo列表, 所以只能手动备份. #!/bin/sh server=serv_addr root_dir=`pwd` echo "whill back in dir: ${root_dir}" ssh "git@${server}" | a

自动化下载并检测ftp文件备份的shell脚本_linux shell

实现代码: #!/bin/bash #ftime0=$(ll /root/hbshell/down.txt | awk '{print $7}') #ftime1=$(ll /root/hbshell/down.txt | awk '{print $7}') touch /root/hbshell/down.txt while : do if [[ /root/hbshell/down.txt -nt /root/hbshell/down_cp.txt ]] then user=root pas

用来检测输入的选项$1是否在PATH中的shell脚本_linux shell

今天无意中发现一本挺有意思的shell编程的书,是e文的,内容是101个shell案例,坚持明天看一个,写点心得. 下面是例子001: #!/bin/sh # inpath - Verifies that a specified program is either valid as is, # or that it can be found in the PATH directory list. in_path() { # Given a command and the PATH, try to

linux下实现ftp自动备份shell脚本_linux shell

利用here文档 复制代码 代码如下: #!/bin/sh ftp -ivn 210.29.28.124 <<EOF user yun yun2011 lcd /home/veyun cd /home/veyun/yhb get v bye EOF 解释: -i :关闭多文件传输过程中的交互提示,所以不会再有让用户输入用户名和密码的提示 -n:阻止了初始连接时的自动登录 -v:将ftp命令设置为verbose模式,从而可以在会话时看到其中的命令 在本例中使用用户名yun和密码yun2011登录

数值运算shell脚本_linux shell

这次的shell案例比较简单,但有其特点. #!/bin/sh # scriptbc - Wrapper for 'bc' that returns the result of a calculation. if [ $1 = "-p" ] ; then precision=$2 shift 2 else precision=2 # default fi bc -q << EOF scale=$precision $* quit EOF exit 0 脚本特点: 1) 脚本

分享个简易版Linux服务器初始化Shell脚本_linux shell

该Shell脚本主要用于新安装Linux服务器系统的初始化工作,具体包括: 关闭IPv6模块 关闭SELinux 让vim显示颜色 设置系统语言编码 优化系统服务 内核参数优化等. 可以根据自己的实际情况修改,可用于生产环境.原作者是NetSeek,本人做了部分修改. 复制代码 代码如下: #!/bin/sh # desc: lsm03624 modified by www.webnginx.com #-------------------cut begin-------------------