unix shell的变量分类

在Shell中有三种变量:内部变量,环境变量,用户变量。

内部变量:系统提供,不用定义,不能修改

环境变量:系统提供,不用定义,可以修改,可以利用export将用户变量转为环境变量.

用户变量:用户定义,可以修改

(1)内部变量(系统变量,环境变量,参数变量,预定义变量)

内部变量是Linux所提供的一种特殊类型的变量,这类变量在程序中用来作出判断。在shell程序内这类变量的值是不能修改的。

   表示方法     描述

   $n     $1 表示第一个参数,$2 表示第二个参数 ...

   $#     命令行参数的个数

   $0     当前程序的名称

   $?     前一个命令或函数的返回码

   $*     以"参数1 参数2 ... " 形式保存所有参数

   $@     以"参数1" "参数2" ... 形式保存所有参数

   $$     本程序的(进程ID号)PID

(2) 环境变量

  Linux环境(也称为shell环境)由许多变量及这些变量的值组成,由这些变量和变量的值决定环境外观。这些变量就是环境变量。

包括两部分,一是,由系统设置的,主要包括: HOME,LOGNAME,MAIL,PATH,PS1,PWD,SHELL,TERM

二是,用户在命令行中设置的,使用export命令,但是用户注销时值将丢失

(3)用户变量(私有变量,本地变量)

  在命令行中自己设定的.


举例如下

cat 1.sh

#!/bin/bash

echo "number:$#"

echo "scname:$0"

echo "first:$1"

echo "second:$2"

echo "argume:$@"

echo "show parm list:$*"

echo "show process id:$$"

echo "show precomm stat:$?"


执行脚本

bash 1.sh 3 2 1

number:3

scname:1.sh

first:3

second:2

argume:3 2 1

show parm list:3 2 1

show process id:31577

show precomm stat:0