首页 > 代码库 > shell处理输入
shell处理输入
1、在运行脚本时指定参数,直接在脚本名称后边跟随需要添加的参数,在运行的过程中,$0代表程序名,$1代表第一个参数,$2代表第二个参数,一直到第九个,从第十个参数开始需要变成${10}等,即需要添加花括号。而在程序中,$#可以返回所有参数的个数,然而这并不代表说可以通过${$#}就能获得最后一个参数,实际上获取最后一个参数需要变成${!#}的格式。
2、在运行的过程中,可以通过不同的方式来同时获得所有的参数,$*将读取所有参数并将这些参数当成一个参数,而$@则会分别保存每个参数,使得可以在程序中遍历每个值,如:./test a b 在运行的过程中,$@等价于一个数组,长度为2,而#*则等价于一个参数。
3、通过shift来移动变量,在程序中,从第一个参数开始,每shift一个,则当前得到的参数会变成下一个,直到每个参数都被遍历,而通过"shift 数字"的方式则可以指定步长。这样的操作会导致程序中获得的总的参数的变化。
4、可以在程序运行的过程中输入参数,通过read,该参数的选项如下:
1)-p,后边可以跟一句提示语,如果加入-p但没有加入提示语,则会导致-p后边的第一个参数被当成提示语;
2)-t,后边跟一个数字,表示超时的秒数;
3)-s,会隐藏输入的字符;
read在运行的过程中,可以指定给多个参数输入数值,如果输入的参数个数大于给定的参数个数,则多余的会全部赋值给最后一个参数,而如果输入的参数不够,则会导致多余的待输入参数全为空。
5、也可以用通道,比如 cat a | while read line,其意思是读取a文件的数据并将每一行输入到程序中。
shell处理输入
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。