shell学习

[url]http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=557642[/url]


每个命令都会返回一个exit 状态(有时候也叫 return 状态). 成功返回 0, 如果返回一个非 0 值,通常情况下都会被认为是一个错误码.一个编写良好的UNIX命令,程序,和工具都会返回一个0 作为退出码来表示成功.

Linux shell的&&和||
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脚本如下:
exit 2
然后在命令行下执行该脚本,最后在shell中输入echo $?看看效果
其实就是上一次程序或脚本的退出码,主要是用来判断程序或脚本的执行是否成功,检查出错的原因之类的
33 test -d $log_dir/$date_dir
34 #if [ ${?} -eq 1 ];then
35 /bin/mkdir -p ${log_dir}/${date_dir} > /dev/null 2>&1
36 #fi


$n $1 the first parameter,$2 the second...
$# The number of command-line parameters.
$0 The name of current program.
$? Last command or function's return value.
$$ The program's PID.
$! Last program's PID.
$@ Save all the parameters.

linux tee 命令详解


功能说明:读取标准输入的数据,并将其内容输出成文件。

语  法:tee [-ai][--help][--version][文件...]

补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。

参  数:
 -a或--append  附加到既有文件的后面,而非覆盖它.
 -i-i或--ignore-interrupts  忽略中断信号。
 --help  在线帮助。
 --version  显示版本信息。


# who | tee who.out
root pts/0 2009-02-17 07:47 (123.123.123.123)
# cat who.out
root pts/0 2009-02-17 07:47 (123.123.123.123)
# pwd | tee -a who.out
/root
# cat who.out
root pts/0 2009-02-17 07:47 (123.123.123.123)
/root
#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值