shell之参数传递

我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$nn 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……

实例

以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:

#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";

为脚本设置可执行权限,并执行脚本,输出结果如下所示:

$ chmod +x test.sh
$ ./test.sh 1 2 3
Shell 传递参数实例!
执行的文件名:./test.sh
第一个参数为:1
第二个参数为:2
第三个参数为:3

另外,还有几个特殊字符用来处理参数:

参数处理 说明
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数。 如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的ID号
[email protected] 与$*相同,但是使用时加引号,并在引号中返回每个参数。 如"[email protected]"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$- 显示Shell使用的当前选项,与set命令功能相同。
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

echo "Shell 传递参数实例!";
echo "第一个参数为:$1";

echo "参数个数为:$#";
echo "传递的参数作为一个字符串显示:$*";

执行脚本,输出结果如下所示:

$ chmod +x test.sh
$ ./test.sh 1 2 3
Shell 传递参数实例!
第一个参数为:1
参数个数为:3
传递的参数作为一个字符串显示:1 2 3

$* 与 [email protected] 区别:

  • 相同点:都是引用所有参数。
  • 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。
#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

echo "-- \$* 演示 ---"
for i in "$*"; do
    echo $i
done

echo "-- \[email protected] 演示 ---"
for i in "[email protected]"; do
    echo $i
done

执行脚本,输出结果如下所示:

$ chmod +x test.sh
$ ./test.sh 1 2 3
-- $* 演示 ---
1 2 3
-- [email protected] 演示 ---
1
2
3
时间: 2024-12-10 23:48:47

shell之参数传递的相关文章

Manifest和Repo使用详解

Android使用repo来管理多个Git项目.它需要一个manifest??XML文件来指示这些git项目的属性. Manifest repo manifest?XML可以包含下面的元素.以如下,manifest片段为例:https://github.com/CyanogenMod/android <?xml version="1.0" encoding="UTF-8"?> <manifest> <remote name="

linux学习之shell脚本 ------- 脚本参数传递

[本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020] 今天再来看一下如何向shell脚本传递参数,需要掌握两个命令,一个是 shift命令,另一个是getopts. 脚本参数传递 shift命令 用法: shift n 每次将参数位置向左偏移n位 假如我们要实现统计多个文件的总行数,就可以用到这个shift命令了,如下: opt2.sh #!/bin/bash #op2 static files total lines; st

[9-13]Shell系列7——函数及参数传递

本文旨在复习shell函数作用.定义.嵌套.删除.终端调用.返回值.参数传递 知识储备 函数:即Functions,把一组实现通用功能的独立的代码模块[通常里面是变量,可变的参数组成]封装在一起,并给予命名:后续用到时,可直接通过给定函数名来调用整体代码 函数作用:<1>代码重用 <2>模块化编程 函数使用:<1>先定义:编写函数代码 <2>后调用:调用函数,按需传递参数[非必需] 函数定义及调用 函数定义格式主要有2种,如下: 12345678910111

shell函数【参数传递及输入输出】&amp;内置函数

Linux--shell脚本基础3:shell函数[参数传递及输入输出]&内置函数 函数定义 1 退出状态 1 参数传递 2 标准IO 2 脚本调试 2 AND&OR 3 内置命令补充 3 函数定义 函数定义: 在Shell 中,函数就是一组命令集或语句形成一个可用块 函数增强了shell的可编程能力 组成 function_name(){ statements } 函数名(在一个脚本中必须唯一) 函数体(命令集合) 注意 shell中不存在向前声明(先定义后使用) 必须在调用一个函数之前

Shell脚本通过参数传递调用指定函数

我们在写一些功能性脚本的时候,往往会把操作相似或者参数类似行为接近的函数放在同一个shell脚本中,这样管理方便,维护简单,也很清晰.对于这种情况,通常的办法是,在shell脚本中定义所有用到的函数,然后在正文代码中用case语句读入输入的命令函数参数来调用指定的相应函数.这样就达到一个shell脚本使用的强大功能. 下面以一个简单的例子来说明.一个计算器提供了加减乘除的功能: #!/bin/bash usage="Usage: `basename $0` (add|sub|mul|div|al

linux Shell函数

Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以速度很快,另外,Shell还能对函数进行预处理,所以函数的启动比脚本更快. 1.函数定义 1 2 3 4 function 函数名() {     语句     [return] } 关键字function表示定义一个函数,可以省略,其后是函数名,有时函数名后可以跟一个括号,符号"{"表示函数执行命令的入口,该符号也可以在函数名那一行,"}"表示函数体的结

shell基础(上)

Shell基础(上) 1.1什么是shell Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的 输入解释给操作系统.井处理各种各样的操作系统的输出结果,输出屏幕返回给用户 这种对话方式可以是 交互的方式:从键盘输入命令,通过/bin/bash的解折,可以立即得到shell的回应 非交互的方式:脚本 Shell执行命令分为两种方式 内置命令:如讲过的cd ,pwd, exit和echo等命令.当用户登录系统后,shell以及内置命令就被系统载入到内存,并且一直运行 一

shell脚本是什么?

命令的堆积: 但很多命令不具有幂等性,需要用程序逻辑来判断运行条件是否满足,以避免其运行中发生错误: 运行脚本: (1) 赋予执行权限,并直接运行此程序文件: chmod +x /PATH/TO/SCRIPT_FILE /PATH/TO/SCRIPT_FILE (2) 直接运行解释器,将脚本以命令行参数传递给解释器程序: bash /PATH/TO/SCRIPT_FILE 注意:脚本中的空白行会被解释器忽略: shell脚本的运行是通过运行一个子shell进程实现的:

python 调用Linux shell

有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的.那么我们使用Python如何调用Linux的Shell命令?下面来介绍几种常用的方法: 1. os 模块 1.1. os模块的exec方法族 Python的exec系统方法同Unix的exec系统调用是一致的.这些方法适用 于在子进程中调用外部程序的情况,因为外部程序会替换当前进程的代码,不会返回.( 这个看了点 help(os)  --> search "exec" 的相关介绍,但是