Linux shell编程之输入处理方法

发布时间:2020-11-13编辑:脚本学堂
本文介绍了linux shell编程中有关输入处理的方法,如何接收与处理shell命令行参数,有需要的朋友参考下。

shell/ target=_blank class=infotextkey>shell脚本对于选项和参数的处理使用两种方法:
1:shift n   移位操作命令来处理参数,在不知道参数的个数的情况下。
2:getopts 命令来处理选项带有参数的输入 

主要用法:
 

复制代码 代码示例:
while  getopts  :ab:cd opt
case opt in
 a)    echo " -a option"
 b)    echo " -b option and the b's paramter  is $OPTARG"
 .....  
esac
 done

过程详解:
getopts 命令的第一个参数是 选项规则参数,:ab:cd 的意思是第一个冒号表示不输出错误信息,选项后面的冒号表示该选项后带有参数,abcd表示选项。
第二个参数是当前脚本命令行中输入的参数,

getopts使用到的环境变量有:
OPTARG 变量为getopts定义的带有参数选项的参数值 ,OPTIND 环境变量的值为脚本参数的位置,初始值为1。
当getopts处理完毕后,返回一个正数结束。

有关getopts的详细用法,请参考文章:

read命令读入用户输入数据的用法
read命令是一个shell内部命令,可以读入多个参数。
read -s -n4 -t 5 -p "please input : "    -s 选项表示隐藏输入信息输入,一般用于密码输入,-n4表示输入的字符的长度为4-t 5 表示超时时间为5s  ,-p表示输入说明。
当使用read进行输入时,没有指定变量,则read将输入的参数放入环境变量REPLY中,若输入的参数大于指定的变量数,则将剩余的参数全部放入最后一个指定的变量中。

read还可以用来输入一个行文本,例子如下
 

复制代码 代码示例:
cat   /etc/passwd | while read line
echo "$ line "

linuxjishu/14000.html target=_blank class=infotextkey>cat命令查看文本,将结果通过管道输入给while命令,在利用readline命令读取,当读取到空行时,read返回一个正数,while结束循环。