《零基础Linux 从入门到精通》_从零开始_轻松掌握Linux操作系统_20.3 一次性任务:at
122
2023-10-23
【摘要】 本书摘自《零基础Linux 从入门到精通》一书中第12章,第3节,编者是零壹快学
12.3 处理用户输入
前文介绍了一些bash shell的脚本,那么作为用户如何和shell脚本进行交互呢?bash提供了一些
方法以便完成脚本的交互。
12.3.1 位置变量
shell脚本最简单的获取外部信息的方法就是通过命令行的参数进行交互,这些参数传递到shell 脚本中,通过位置变量获取。位置变量都是标准的数字, $0表示脚本名称,从$1~$9依次为第一
个到第九个参数,如下所示。
test.sh
$0
first
$1
second
$2
third
$3
下面通过一个例子理解位置变量。
动手写 12.3.1
执行结果如下所示。
如果参数不止九个,我们也可以进行处理,只是需要在数字两边加上花括号,如下所示。
基 础 Linux 从入门到精通
动手写 12.3.2
执行结果如下所示。
这里需要说明的是,每个参数都是通过空格进行分割的,如果一个参数内包含空格,通过引
号引用起来就可以传递给shell脚本。
12.3.2 特殊变量
shell有一些特殊变量(表12.3.1),可以记录命令行的参数、命令的执行结果等,合理运用特
殊变量可以方便脚本的执行与统计。
表12.3.1 shell的一些特殊变量
变量 含义
$# shell 脚本后参数的个数
$@ 以列表的形式传给脚本的所有参数
$* 以单词的形式传给脚本的所有参数
我们通过例子来理解这些特殊变量。“$#”用于统计传递给shell脚本的参数数量,示例如下。 动手写 12.3.3
执行结果如下。
第 12 章 shell脚本
$@和$*都用于显示所有的参数,我们先看一个例子。
动手写 12.3.4
执行结果如下
单单从屏幕输出上来看二者是相同的,但其实有所区别。 $*表示的变量值实际为“one two three four”,而$@变量实际为“one”“two”“three”“four”,在学习使用for遍历的时候,我们 可以更深刻地体会到这两者的区别。
12.3.3 移动变量:shift
利用shift命令可以使脚本参数变量发生偏移,默认情况下不加任何参数,shift使所有参数向左 移动一个位置, $1的参数删除, $2变成$1, $3变成$2,后面顺次前移,但是$0不发生改变。以如
下例子进行演示。
动手写 12.3.5
执行结果如下。
基 础 Linux 从入门到精通
shift后面接数字的话,表示所有参数移动的数量,如下所示。
动手写 12.3.6
执行结果如下。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~