shell学习
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=557642
每个命令都会返回一个exit状态(有时候也叫return状态).成功返回0,如果返回一个非0值,通常情况下都会被认为是一个错误码.一个编写良好的UNIX命令,程序,和工具都会返回一个0作为退出码来表示成功.
Linuxshell的&&和||
shell在执行某个命令的时候,会返回一个返回值,该返回值保存在shell变量$?中。当$?==0时,表示执行成功;当$?==1时,表示执行失败。
另外$@和$*只能支持九个参数?什么平台的什么shell?
上面所提到的用shift,这样的话会删除前面的参数,而前面的参数在其它函数中要用到的
?搞个临时变量,在shift之前把以后还需要的变量保存到临时变量中
$0获取当前Shell程序的文件名
dirname$0,获取当前Shell程序的路径
cd`dirname$0`,进入当前Shell程序的目录
$#表示参数有多少参数
$*表示所有的参数
Shell变量名使用的特殊字符:
$#传送给命令Shell的参数序号
$-在Shell启动或使用set命令时提供选项
$?上一条命令执行后返回的值
$$当前shell的进程号
$!上一个子进程的进程号
$@所有的参数,每个都用双括号括起
$*所有参数,用双括号括起
$n位置参数值,n表示位置
$0当前shell名
$?表示上一次程序退出值,$?是上一个命令的运行结果,0表示成功,其他值是失败。
你可以自己写一个1.sh脚本如下:
exit2
然后在命令行下执行该脚本,最后在shell中输入echo$?看看效果
其实就是上一次程序或脚本的退出码,主要是用来判断程序或脚本的执行是否成功,检查出错的原因之类的
33test-d$log_dir/$date_dir
34#if[${?}-eq1];then
35/bin/mkdir-p${log_dir}/${date_dir}>/dev/null2>&1
36#fi
$n$1thefirstparameter,$2thesecond...
$#Thenumberofcommand-lineparameters.
$0Thenameofcurrentprogram.
$?Lastcommandorfunction'sreturnvalue.
$$Theprogram'sPID.
$!Lastprogram'sPID.
$@Savealltheparameters.
linuxtee命令详解
功能说明:读取标准输入的数据,并将其内容输出成文件。
语 法:tee[-ai][--help][--version][文件...]
补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
参 数:
-a或--append 附加到既有文件的后面,而非覆盖它.
-i-i或--ignore-interrupts 忽略中断信号。
--help 在线帮助。
--version 显示版本信息。
[root@localhost~]#who|teewho.out
rootpts/02009-02-1707:47(123.123.123.123)
[root@localhost~]#catwho.out
rootpts/02009-02-1707:47(123.123.123.123)
[root@localhost~]#pwd|tee-awho.out
/root
[root@localhost~]#catwho.out
rootpts/02009-02-1707:47(123.123.123.123)
/root
[root@localhost~]#