[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
#
每个命令都会返回一个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
#