SHELL中的特殊变量

特殊变量:

$# 传递到脚本的参数个数;
      $* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个;
      $$ 脚本运行的当前进程ID号;
      $! 后台运行的最后一个进程的进程ID号;
      [email protected] 与$*相同,但是使用时加引号,并在引号中返回每个参数;
      $- 显示shell使用的当前选项,与set命令功能相同;
      $? 显示最后命令的退出状态.0表示没有错误,其他任何值表明有错误;

位置变量:

变量名:$0,$1,$2,$3,$4,$5,$6,$7,$8,$9
说明:
      $0: 表示脚本名称。
      $1,$2,...,$9:$1表示向脚本传递的第一个参数,$2表示向脚本传递的第二个参数,...,$9表示向脚本传递的第九个参数.

如果要向一个shell脚本传递信息,可以使用位置参数完成此功能;参数相关数目传入脚本,此数目可以任意多,但只有前9个可以被访问,使用shift命令可以改变这个限制;参数从第一个开始,在第九个结束;每个访问参数前要加$符号;第一个参数为0,表示预留保存实际脚本名字;无论脚本是否有参数,此值均可用.

时间: 2024-08-25 13:18:46

SHELL中的特殊变量的相关文章

bash shell中的环境变量

环境变量--bash shell使用环境变量来存储系统相关数据,并允许将数据存储在内存中. 环境变量分为:全局环境变量 本地环境变量 目录 全局环境变量 本地环境变量 设置全局环境变量 删除环境变量 PATH全局环境变量 设置系统环境变量的相关文件(登录.非登录.交互.非交互shell) 一.全局环境变量 在当前shell和子shell都可见 可以用printenv命令查看全局环境变量,大写表示是系统环境变量,小写表示是普通用户的环境变量 这是bash shell的一个标准约定,不是必须的,因此

shell中的特殊变量IFS

当我越来越习惯python的编写风格时,我经常会想用bash去遍历一个文件的行,并将读取的行进行处理. 但一个诡异的情况,如果我的文本类似于这样 the first line. the second line. the third line. for line in `cat filename` do echo $line done 当我通过上面的方式遍历文件的每一行,我发现读出来的数据是这样的: the first line. the second line. the third line.

shell 中的 特殊变量类型数组

shell 中两种数据类型:一是数值类型,二是字符串类型:虽然shell本身是弱类型的,但也可以这么区分.如果我们需要在shell中一个变量中存储多个值,那么就需要一个更方便的类型数组数组在shell中是用括号括起来每个值之间用空格隔开就定义了一个数组a=(1 2 3 4 5)a=("a" "b" "c" "d" "e")a=(1 "a" 2 "b")都是可以的 数组

shell中的环境变量:local,global,export

 1.local一般用于局部变量声明,多在在函数内部使用.实例如下:      echo_start() { local STR="$1" echo "...... ${STR} ......starting at $(date)" } 2.Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止. 3.export 将自定义变量设定为系统环境变量(仅限于该次登陆操作,当前shell中有效)    语法:expo

Shell中的特殊变量($0、$#、$*、[email protected]、$$、$!、$?、$1~$n)

在Shell中,$*和[email protected]分别代表如下含义: $0 : 脚本自身的名称 $# : 位置参数的个数 $* : 所有的位置参数都会被看成一个字符串 [email protected] : 每个位置参数会被看做一个独立的字符串 $$ :  当前进程的PID $! : Shell最后运行的后台进程的PID $?  :    返回上一次命令是否执行成功:0表示执行成功,非0表示执行失败 $1~$n : 添加到Shell的各参数值.$1是第1参数.$2是第2参数-. 示例: #

Linux shell 中判断一个变量是否为空 的方法

判断一个脚本中的变量是否为空,我写了一个这样的shell脚本: #!/bin/sh #filename: test.sh para1= if [ ! -n $para1 ]; then echo "IS NULL" else echo "NOT NULL" fi 然后把该脚本:test.sh通过chmod +x 改为可以执行的脚本,执行后输出的结果为: NOT NULL,很是奇怪,最后,通过查询一些资料发现,可以通过如下方式判断一个shell变量是否为空: 1. 变

Shell中特殊的变量

$表示当前的进程,当使用echo $$是会输出当前shell的pid 1 echo $$ 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数是$1,第二个参数是$2. $# 传递给脚本或函数的参数个数. $* 传递给脚本或函数的所有参数. [email protected] 传递给脚本或函数的所有参数.被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到. $? 上个命令的退出状态,或函数的返回值. $

SHELL中常用特殊变量

$0 获取当前执行的SHELL脚本的文件名,包括路径. 注:basename 只要文件名,dirname 只要文件所以路径. $n 获取当前的执行的shell脚本的第n个参数值,n=1-9,当n为0时表示脚本的文件名,如果n大于9,用大括号括起${10}. $# 获取当前shell命令行终参数的总个数,命令演示如上图所示. $? 获取执行上一个指令的返回值(0为成功,非0为失败)#这个变量很常用

linux shell中的位置参数变量

要了解位置变量,首先要知道什么是变量? 变量就是让某一个特定的字符串来代表不固定的内容,简单理解就是用一个简单的"字眼"来替代另一个比较复杂或者容易变动的数据. 而什么又是位置变量呢? 位置变量就是bash将传递给脚本的参数,按照位置不同,保存在不同的位置变量中,以便于脚本调用这些变量. 位置参数变量: $1, $2, ...: 对应第1.第2等参数,shift [n]换位置 $0:  命令本身 $*:  传递给脚本的所有参数,全部参数合为一个字符串:代表"$1$2$3...