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~]#

相关推荐