我们对于普通脚本语言诸如perl python等,写一个脚本程序,包装命令行参数时,一般都是用getopt之类的;C语言也类似。
那么,对于一个SHELL脚本,它本身的命令参数是什么样呢?
首先 ,SHELL脚本编程和Python等脚本编程一样可以使用参数;
其次 ,SHELL参数分为位置参数和内部参数;
其中,位置参数 :是由系统提供的参数,就是我们一般说的某个数组的第1,2,3...个元素;可以采用$i的形式获得某个参数,显然$0就是程序本身,$1就是第一个参数; 这里需要注意的是,即便你以sh xxx.sh 来执行脚本,$0仍然是xxx.sh ,而不是sh !这一点和我们的Perl python 都是一致的
内部参数 :
$0 ----- 当前程序的名称,实际上是一个内部参数,不同于$1,$2....因为它必须有!
$# ---- 传递给程序的总的参数数目,也就是那个传说中的数组大小
$? ---- 上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
$* ---- 传递给程序的所有参数组成的字符串。
$@---- 以"参数1" "参数2" ... 形式保存所有参数
$$ ---- 本程序的(进程ID号)PID
$! ---- 上一个命令的PID
如此以来,即便用SHELL, 我们也可以写出功能强大、交互友好的脚本程序!!!
最后,附注一下python执行系统命令的两种不同方式:
1 os.system(cmd) :直接一个或者一组系统命令cmd;不返回执行输出即结果;如果是在python的命令行下执行,则输出被直接输出。
比如: os.system('ls -l')
2 os.open(cmd[, mode='r' [, bufsize]]) :文档的注释是从cmd打开一个pipe,或者打开一个pipe到cmd,并且返回输出为一个file对象!
比如: t = os.popen('ls *.gff').readlines() ; print t
PS: 结合以上两个部分的内容,我们就可以灵活处理python脚本和SHELL的交互了!!!
分享到:
相关推荐
之所以用到命令行参数,关键在于shell脚本需要与运行脚本的人员进行交互。bash shell提供了命令行参数添加在命令后面的数据值)、命令行选项修改命令行为的单字符值)和直接读取键盘输入。 1、命令行参数向shell脚本...
MFC提供了一套内置的命令行参数处理机制,用于解析标准的shell命令(如DDE、文件打开等)。这一机制主要通过`CCommandLineInfo`类实现,该类定义了一系列成员变量和成员函数来支持命令行参数的解析与处理。 ##### `...
本文将深入探讨Linux Shell命令行及脚本编程的相关知识点。 1. **基础命令**: - **ls**: 列出目录内容。 - **cd**: 更改当前工作目录。 - **pwd**: 显示当前工作目录。 - **touch**: 创建新文件或更新文件...
Shell命令行参数是控制脚本或程序运行的关键元素,它们允许用户在运行时自定义行为。在Shell脚本中,参数分为两类:位置参数和内部参数。 位置参数是指由用户提供给脚本的一系列值,这些值按照它们在命令行上出现的...
在探讨如何传递包含空格的命令行参数时,我们首先需要理解命令行参数的基本概念以及在实际编程场景中如何正确地处理这些参数。本篇内容将深入解析如何在不同的编程环境中处理带有空格的命令行参数,并通过示例来解决...
Linux Shell是Linux操作系统中用于与用户交互的命令解释器,它是Linux系统中不可或缺的一部分,尤其对于系统管理员和程序员来说,熟练掌握Shell命令行操作和脚本编程至关重要。这份"Linux Shell命令行及脚本编程实例...
本文深入探讨了Linux Shell命令行参数的使用方法,这对于熟练掌握Linux系统的管理至关重要。 首先,我们了解命令行的基本结构。当用户登录Linux系统后,会看到一个Shell提示符,如"$",这标志着用户可以在此输入...
Linux 实现简易的 Shell 命令行解释器 Linux 实现简易的 Shell 命令行解释器是实现一个基本的 Shell 解释器,通过获取命令行、解析命令行、建立子进程、执行命令和等待子进程结束等步骤来实现命令行解释器的功能。...
在IT领域,shell是操作系统与用户交互的一种接口,它允许用户通过命令行界面执行系统级操作。本课程设计的目标是创建一个简单的shell程序,模仿像bash和csh这样的经典Unix shell。这个项目不仅有助于理解shell的基本...
本文将深入探讨Linux Shell命令行及其脚本编程的实例详解,旨在帮助读者掌握这一强大的工具。 首先,我们需要了解Linux的基础,它是开源的操作系统,提供了稳定且灵活的环境,广泛应用于服务器和开发领域。Linux ...
- **Python标准库:**Python的标准库提供了许多用于文本处理和命令行交互的模块,如`argparse`用于解析命令行参数,`sys`用于获取命令行输入,`getpass`用于安全地读取用户输入等。 - **网络请求:**为了实现在线...
在Shell命令行中,特殊字符扮演着至关重要的角色,它们能改变命令的解析和执行方式。这些特殊字符具有特殊的含义,比如`*`用于匹配任意多个字符,`?`匹配单个任意字符,`[]`用于匹配指定范围内的字符等。然而,在...
这段代码首先打开了`.txt`文件类型的注册表项,然后遍历`shell`下的所有动作(如“打开”),并获取相应的命令行参数。请注意,这只是一个基础示例,实际应用中可能需要处理更多异常情况,并且应确保对注册表的访问...
实现这些命令时,需要创建一个解析命令行参数的机制,这通常涉及`getopt()`函数或自定义的解析算法。程序还需要处理输入输出重定向,这需要用到`dup()`和`fork()`系统调用来创建新的进程,并重定向标准输入、输出和...
, $$和命令行参数 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# 传递给脚本或函数的参数个数。 $* 传递给脚本...
通过这些命令行参数,开发者可以将PHP脚本作为shell命令来使用,例如`php -q 文件名.php`可以直接运行PHP脚本,而`php -s 文件名.php`则可以将PHP源代码以彩色HTML的形式展示出来。此外,结合PHP的ODBC功能,可以在...