ad

《零基础Linux 从入门到精通》_从零开始_轻松掌握Linux操作系统_12.3 处理用户输入

admin 122 2023-10-23

【摘要】 本书摘自《零基础Linux 从入门到精通》一书中第12章,第3节,编者是零壹快学

12.3 处理用户输入

前文介绍了一些bash shell的脚本,那么作为用户如何和shell脚本进行交互呢?bash提供了一些

方法以便完成脚本的交互。

《零基础Linux 从入门到精通》_从零开始_轻松掌握Linux操作系统_12.3 处理用户输入

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小时内删除侵权内容。

上一篇:《零基础Linux 从入门到精通》_从零开始_轻松掌握Linux操作系统_13.4 控制循环
下一篇:《VMware vSphere 云平台运维与管理》_向云端进发_1.3. 企业实施服务器虚拟化的优点
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×