杨超

杨超的博客

他的个人主页  他的博客

Magic "$"(shell)

杨超  2010年08月17日 星期二 22:47 | 1306次浏览 | 0条评论

1.命令行参数 2.变量 3.特殊参数 4.替换与扩展 5.处理未初始化或空的变量

1.命令行参数

$n 表示第n个命令行参数(n为0~9,其中$0表示程序名。若n>9,则使用${n},如${11})

${!n} 当n为变量的时候,表示第n个命令行参数

$# 表示命令行参数的个数
$* 表示所有命令行参数(当作一个参数)
$@ 表示全部命令行参数列表(当作很多个参数)

2.变量

$i 引用变量i

${name} 引用变量name

${A[0]} 引用数组A的第0个元素

${#A[*]} 引用数组A的元素个数

${#A[0]} 引用数组A的第0个元素的长度

${A[*]} 将数组A的所有元素当成一个元素来引用

${A[@]}将数组A的所有元素当成很多个元素来引用

3.特殊参数

$$ 表示shell进程的PID号


$! 最近一个后台运行的进程PID号

!$ 表示上一条命令的最后一个参数

$? 上一个进程的退出状态(0表示成功,非0表示失败,具体值可参看该进程的程序文档)

4.替换与扩展

$(command)          命令替换,以括号中命令的执行结果作为表达式的值

$((3+2*age))        算术扩展,以括号中算式的值作为表达式的值(在其中引用变量不需再加$)

5.处理未初始化或空的变量

${name:-default}  若name为空或没有初始化,则显示default值

${name:=default} 若name为空或没有初始化,则将n赋值为default并显示

${name:?mesage} 若name为空或没有初始化,则显示错误信息message

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !

暂时没有评论

Zeuux © 2024

京ICP备05028076号