shell变量可分为两类:局部变量和环境变量。局部变量只在创建它们的shell中可用。而环境变量则可以在创建它们的shell及其派生出来的任意子进程中使用。有些变量是用户创建的,其他的则是专用shell变量。变量名必须以字母或下划线字符开头。其余的字符可以是字母、数字(0~9)或下划线字符。
2 环境变量
环境变量的定义方法如下:
var=value
export var
3.查看变量
set:查看所有变量
env:查看环境变量
unset:删除变量
PATH="$PATH":路径
4.数值变量
age=22 age=$age+1 echo $age >>>22+1 ##shell变量都为字符串,不会进行数学运算 let age=$age+1 ##可以用let命令使其进行数学运算 echo $age >>>24 age=$(($age+1)) ##变量算数表达式$(( )) ,$()为执行变量 echo $age >>>25
5 特殊变量
$0:当前脚本的文件名
$num:num为从1开始的数字,$1是第一个参数,$2是第二个参数,${10}是第十个参数
$#:传入脚本的参数的个数
$*:所有的位置参数(作为单个字符串)
$@:所有的位置参数(每个都作为独立的字符串)。
$?:当前shell进程中,上一个命令的返回值,如果上一个命令成功执行则$?的值为0,否则为其他非零值,常用做if语句条件
$$:当前shell进程的pid
$!:后台运行的最后一个进程的pid
##test.sh a b c echo $0 >>>test.sh echo $1 >>>a echo $2 >>>b echo $3 >>>c echo $# >>>3 for i in "$*" do echo "parameter is $i" done >>>a b c (所有参数为一个整体) for m in "$@" do echo "parameter is $m" done >>>a >>>b >>>c echo $? >>>0 echo $$ >>>1234 ls & echo $! >>>1345