`
szgaea
  • 浏览: 216515 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

【转】linux shell参数说明

阅读更多
Bash shell中的位置参数$#,$*,$@,$0,$1,$2...及特殊参数$?,$-等的含义

在Bash shell中经常会见到一些比较特殊的符号,本人现收集与此,以供查阅:

位置参数:
详见ABS(Advanced Bash Shell)中文翻译版103页第9章第一节内部变量,当然英文版ABS都一样啦

$1, $2, $3等等...
位置参数,从命令行传递给脚本,或者是传递给函数.或者赋职给一个变量.
此数目可以任意多,但只有前9个可以被访问,使用shift命令可以改变这个限制。
(具体见Example 4-5 和Example 11-15)
$0
$0表示当前执行的进程名,script 本身的名字,或者在正则表达式中表示整行输出

$#
命令行或者是位置参数的个数.(见Example 33-2)
$*
所有的位置参数,被作为一个单词.
注意:"$*"必须被""引用.
$@
与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整地传递,
并没有被解释和扩展.这也意味着,每个参数列表中的每个参数都被当成一个独立的单词.
注意:"$@"必须被""引用.

其他的特殊参数
$-
传递给脚本的falg(使用set 命令).参考Example 11-15.
显示shell使用的当前选项,与set命令功能相同
注意:这起初是ksh 的特征,后来被引进到Bash 中,但不幸的是,在Bash 中它看上去也不
能可靠的工作.使用它的一个可能的方法就是让这个脚本进行自我测试(查看是否是交
互的).
$!
在后台运行的最后的工作的PID(进程ID).
$_
保存之前执行的命令的最后一个参数.
$?
命令,函数或者脚本本身的退出状态(见Example 23-7)
用于检查上一个命令,函数或者脚本执行是否正确。(在Linux中,命令退出状态为0表示该命令正确执行,任何非0值表示命令出错。)
$$
脚本自身的进程ID.这个变量经常用来构造一个"unique"的临时文件名.
(参考Example A-13,Example 29-6,Example 12-28 和Example 11-25).
这通常比调用mktemp 来得简单.
注意事项:
[1] 当前运行的脚本的PID 为$$.
[2] "argument"和"parameter"这两个单词经常不加区分的使用.在这整本书中,这两个
单词的意思完全相同.(在翻译的时候就未加区分,统统翻译成参数)

退出和返回
退出状态(exit status)
函数返回一个被称为退出状态的值. 退出状态可以由return 来指定statement, 否则函数的
退出状态是函数最后一个执行命令的退出状态(0 表示成功,非0 表示出错代码). 退出状态
(exit status)可以在脚本中由$? 引用. 这个机制使脚本函数也可以像C 函数一样有一个"
返回值".
return
终止一个函数.return 命令[1]可选地带一个整数参数,这个整数作为函数的"返回值"返回
给调用此函数的脚本,并且这个值也被赋给变量$?.

while true可以写为while :



Example 23-7 两个数中的最大者
###################Start Script#################
1 #!/bin/bash
2 # max.sh: 两个整数中的最大者.
3
4 E_PARAM_ERR=-198 # 如果传给函数的参数少于2 个时的返回值.
5 EQUAL=-199 # 如果两个整数值相等的返回值.
6 # 任一个传给函数的参数值溢出
7 #
8
9 max2 () # 返回两个整数的较大值.
10 { # 注意: 参与比较的数必须小于257.
11 if [ -z "$2" ]
12 then
13 return $E_PARAM_ERR
14 fi
15
16 if [ "$1" -eq "$2" ]
17 then
18 return $EQUAL
19 else
20 if [ "$1" -gt "$2" ]
21 then
22 return $1
23 else
24 return $2
25 fi
26 fi
27 }
28
29 max2 33 34
30 return_val=$?
31
32 if [ "$return_val" -eq $E_PARAM_ERR ]
33 then
34 echo "Need to pass two parameters to the function."
35 elif [ "$return_val" -eq $EQUAL ]
36 then
37 echo "The two numbers are equal."
38 else
39 echo "The larger of the two numbers is $return_val."
40 fi
41
42
43 exit 0
44
45 # 练习 (容易):
46 # ---------------
47 # 把这个脚本转化成交互式的脚本,
48 #+ 也就是说,让脚本可以要求调用者输入两个整数.
#####################End Script##################
分享到:
评论

相关推荐

    LINUX SHELL编程从初学到精通

    下面将基于Linux Shell编程这一主题,详细说明相关知识点。 Linux Shell编程是学习Linux系统管理和自动化脚本的重要组成部分,它允许用户通过命令行界面与操作系统交互。Shell是一种特殊的程序,它作为用户和内核...

    Linux shell编程

    以下是对Linux Shell编程的一些基础知识进行的详细说明: 1. **Shell类型**:Linux系统中有多种Shell,如Bash(Bourne Again SHell)、Sh、Csh、Tcsh等,其中Bash是最常见也是最常用的一种。Bash扩展了经典的Bourne...

    linux shell大全

    在`Linux shell 命令大全.chm`这个压缩文件中,用户可以找到上述各类命令的详细说明、参数选项以及示例,帮助快速查找和学习特定的Shell功能。无论是初学者还是经验丰富的用户,这个手册都能提供宝贵的参考。通过...

    Linux_Shell实例精解.rar

    《Linux Shell实例精解》是一本深度探讨Linux Shell编程的宝典,总计540多页,涵盖了广泛的Shell脚本编写技巧和实际应用案例。在Linux操作系统中,Shell作为用户与系统之间的接口,扮演着至关重要的角色。它不仅提供...

    linux shell 编程中select 命令的用法

    在Linux Shell编程中,`select`命令是一种非常实用的交互式菜单构建工具,它源自于Korn Shell(ksh),并被广泛应用于bash等其他Shell环境中。`select`命令允许用户从一系列选项中进行选择,这在创建用户友好的脚本...

    unix与linux shell编程指南

    《Unix与Linux Shell编程指南》是一本专注于操作系统交互和自动化任务执行的实用手册。Shell编程在Linux和Unix环境中扮演着核心角色,它提供了一种高效的方式来进行系统管理、任务自动化以及用户界面定制。以下是...

    使用Linux-Shell转换PDF文件为图片

    而`说明.txt`是使用这些工具的指南,包含操作步骤和可能的参数说明。 转换过程可能如下: 1. **运行Shell脚本**:用户需要有执行权限,可以通过`chmod +x convertPdfToImg.sh`赋予脚本执行权。 2. **调用jar包**:...

    用Linux Command Shell模拟DOS命令

    以下是对如何使用Linux shell脚本来模拟DOS命令的详细说明。 首先,了解shell脚本的基础至关重要。一个简单的shell脚本通常以`#!/bin/sh`或`#!/bin/bash`开头,这被称为shebang,指示操作系统使用哪个shell解释器来...

    学习笔记《LINUX+SHELL脚本攻略》Sarath Lakshman

    数也能像环境变量一样用export到处...参数说明: -f 代表[变量名称]中为函数名称。 -n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。 -p 列出所有的shell赋予程序的环境变量。 实例

    linux-shell脚本命令:awk命令简介

    本文将对awk命令的基本知识进行介绍,包括其工作原理、参数说明、内置变量、内置函数和使用示例。 首先,awk的工作流程可以从读取文本开始。在处理过程中,它首先将文件的一行内容读取到内存中,然后对这行内容按照...

    Linux shell语法学习文档 PDF文档

    01.shell概述 02.shell中特殊字符 04.shell中参数:$0、$?...14.Linux/shell中一些命令说明 15.Linux三剑客 --- grep 16.Linux三剑客 --- sed 17.Linux二剑客 --- awk 18,shell脚本静态检查 --- shellcheck 19.参考资源

    Linux shell中文文档

    Linux Shell是Linux操作系统中的一种命令行解释器,它允许用户通过文本界面与系统进行交互,执行各种操作。本文档详细介绍了Linux Shell的基本命令、脚本语法以及常用的工具使用方法,对于理解和掌握Linux环境下的...

    linux shell编程教程

    首先,了解基础的Linux命令至关重要,如在“linux命令说明.doc”中所述,这包括文件操作(如`ls`, `cd`, `cp`, `mv`, `rm`等)、目录管理、权限控制以及进程管理等。掌握这些命令能让你在编写Shell脚本时更加...

    C实现LinuxShell.zip

    虽然此项目未具体说明,但这是Shell增强用户体验的一个常见功能。 通过这个项目,学习者可以深入了解C语言如何与操作系统交互,以及Linux Shell的基本工作原理。此外,这还为开发自定义Shell或扩展现有Shell提供了...

    linux shell实现转换输入日期的格式

    在Linux环境中,shell脚本是实现自动化任务的强大工具,其中包括处理日期格式的转换。这篇文档主要探讨了一个简单的shell脚本,用于将用户输入的日期转换为标准格式,但该脚本存在一定的局限性。 首先,脚本定义了...

    linux 常用命令 操作系统命令 shell概述

    Linux 命令格式说明 ------------------- ### 命令格式 command [-options] [arguments (或 parameters)] ### 选项 选项是对命令的特别定义,以 - 开始,多个选项可用一个 - 连起来。 ### 命令与参数 命令与...

    Linux shell Script

    Linux Shell脚本是一种在Linux操作系统环境下执行的程序,它利用Shell解释器来解析并执行命令。Shell脚本是Linux系统中的强大工具,可以自动化日常管理任务,提高工作效率,同时也是学习Linux系统管理和编程的一个...

    Linux最常用的18个Shell命令

    对于Linux用户,尤其是系统管理员,掌握一些基本的Shell命令是至关重要的。Shell是Linux系统中的命令解释器,它允许用户通过命令行接口与操作系统交互。本文将介绍18个最常用的Linux Shell命令,帮助你更好地理解和...

    linux shell字母转换写法.docx

    在Linux Shell脚本编程中,我们经常会遇到需要对文本或者字符串进行各种操作的情况,其中字母转换就是一种常见的需求。在Shell中,有多种方法可以实现字母的大小写转换,包括使用内置的参数扩展以及外部工具如`sed`...

    Linux与Unix shell编程指南(完整高清版)

    - 书的附录部分列出了许多常用的 shell 命令及其简要说明。 - 熟悉这些命令是掌握 shell 编程的基础。 通过以上知识点的概述,可以看出《Linux与Unix Shell编程指南》涵盖了从基础到高级的 shell 编程知识。无论是...

Global site tag (gtag.js) - Google Analytics