$取shell参数

来源:互联网 发布:淘宝子账号有风险吗 编辑:程序博客网 时间:2024/04/25 12:27

if [ $? -ne 0 ];then 是什么意思


这是unix的shell编程语句,意思是如果上一条命令执行后的结束代码不是0则执行下面的命令,知道fi行之前,例子:
who am i | grep root
if [ $? -ne 0 ]
then
echo 'hello'
fi


linux if [ $# = 0 ] ; then 是什么意思


其实,标准写法是:
if [ $# -eq 0 ]; then

$#表示位置参数的数目(对脚本来说,是运行脚本时所带的参数;对函数来说,是函数调用时传入的参数)。
数值的比较用 -eq ,字符串的比较才用 =

$@, $*表示所有的参数
相同点:都是引用所有参数
不同点:只有在双引号中体现出来
假设你的脚本运行时你写了三个参数 分别存储在$1 $2 $3中
则"$*" 等价于 “$1 $2 $3" ---》传递了一个参数
而“$@" 等价于 "$1" "$2" "$3" ---》传递了三个参数


$#则表示参数的个数
$$ 
Shell本身的PID(ProcessID) 
$! 
Shell最后运行的后台Process的PID 
$? 
最后运行的命令的结束代码(返回值) 
$- 
使用Set命令设定的Flag一览
$* 
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$0 
Shell本身的文件名 

$1~$n 
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。 


linux下的Source命令的基本功能

source命令用法:
source FileName
作用:在当前bash环境下读取并执行FileName中的命令。
注:该命令通常用命令“.”来替代。
如:source .bash_rc 与 . .bash_rc 是等效的。
注意:source命令与shell scripts的区别是,
source在当前bash环境下执行命令,而scripts是启动一个子shell来执行命令。这样如果把设置环境变量(或alias等等)的命令写进scripts中,就只会影响子shell,无法改变当前的BASH,所以通过文件(命令列)设置环境变量时,要用source 命令。







0 0
原创粉丝点击