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处理输入的更多相关文章

  1. linux shell提示输入 输错字符解决方法

    linux shell提示输入 输错字符解决方法ctrl+回车 删除单个字符ctrl+u删除光标前全部字符ctrl+k删除光标后全部字符

  2. Shell编程学习---第五篇:Shell的输入和输出

    在shell脚本中,可以用几种不同的方式读入数据:可以使用标准输入—缺省为键盘,或 者指定一个文件作为输入.对于输出也是一样:如果不指定某个文件作为输出,标准输出总 是和终端屏幕相关联.如果所使用命令 ...

  3. linux脚本:shell, 判断输入参数的个数(命令行)

    if [ $# != 3 ] ; thenecho "USAGE: $0 from to"echo " e.g.: $0 ~/oucaijun/from ~/oucaij ...

  4. shell的输入和输出

    1.echo    echo [option] string -e 解析转义字符 -n 回车不换行,linux系统默认回车换行 转移字符 \c \t \f \n #!/bin/bash #echo e ...

  5. shell编程-输入/输出重定向(十一)

    linux中文件描述符 linux跟踪打开文件,而分配的一个数字,通过这个数字可以实现对文件的读写操作 用户可以自定义文件描述符范围是:3-max,max跟用户的ulimit –n 定义数字有关系,不 ...

  6. Linux在shell中输入历史命令

    在Linux的shell中,经常输入的命令有很多雷同,甚至是一样的, 如果是长命令,再次敲一遍效率真的是很低, 不过可以通过Ctl+r,  查找history中以前输入的命令,很是好用. 按Ctrl+ ...

  7. shell将输入的参数逆序

    #! /usr/bin/ksh count=$#  //总共输入参数 cmd="echo" while [[ $count -gt 0 ]] do cmd="$cmd \ ...

  8. shell脚本--输入与输出

    输出带有转义字符的内容 单独一个echo表示一个换行 使用echo输出时,每一条命令之后,都默认加一个换行:要想取消默认的换行,需要加 -n 参数. #!/bin/bash #文件名:test.sh ...

  9. shell 键盘输入

    命令:read 从键盘读入数据,赋值变量 [root@ssgao shell]# cat b.sh #!bin/bash read a b c echo "a is : ${a}" ...

随机推荐

  1. 为什么margin-top不是作用于父元素【margin外边距合并问题】

    coding时发现margin-top居然没作用于本元素上,而是作用到了父元素上. 原来是margin外边距合并导致的.以下是网上搬运来的知识: margin外边距合并详解:外边距合并现象在网页布局中 ...

  2. 常用shell 命令整理 一 进程 cpu

    1.查看内存从大到小排列 ps -e -o "%C : %p : %z : %a"|sort -k5 -nr 分析: -e 显示进程 -o 按用户自定义格式显示 %C cpu %p ...

  3. paintEvent(QPaintEvent*)是系统自动调用的

    qt中函数paintEvent(QPaintEvent*)是被系统自动调用. paintEvent(QPaintEvent *)函数是QWidget类中的虚函数,用于ui的绘制,会在多种情况下被其他函 ...

  4. Qt-导入第三方库

    Qt提供了显式和隐式导入第三方库方法,本文只介绍显示导入方法. 第三方提供的库文件包括ControlCAN.h,ControlCAN.dll和ControlCAN.lib.将ControlCAN.h和 ...

  5. neurosolutions 人工神经网络集成开发环境 keras

    人工神经网络集成开发环境 :  http://www.neurosolutions.com/ keras:   https://github.com/fchollet/keras 文档    http ...

  6. css3-columns多列布局

    /*css3中的布局*/ .wrapper{ margin:auto; width:300px; height:200px; border:2px dotted blue; -webkit-colum ...

  7. struts2download

    public class TestAction extends ActionSupport{        public String fileLoad() throws IOException{   ...

  8. qt 定时器

    重写方法 virtual void timerEvent(QTimerEvent *event); 启动定时器 timerId = startTimer(500);

  9. mysql主从

    1       系统规划 1.1     mysql版本 Mysql版本 mysql-5.5.51 1.2     服务器地址 服务器地址 10.180.2.167 1.3     mysql目录 主 ...

  10. 3.1 AngularJS必备知识

    AngularJS是一个WEB应用框架. 本节我们会学习控制器(控制数据),会学习作用域(连接控制器和用户界面),用户界面又叫做视图,通过模板和作用域来创建交互视觉效果.另外,我们还会学习其他的特性比 ...