菜比之路

走菜比的路,让大牛说去吧
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

【shell】变量

Posted on 2016-06-15 14:03  毕加索的ma  阅读(151)  评论(0编辑  收藏  举报

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