#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
echo "the script name is:$0"
[ -n "$1" ] && echo "the 1st paramter is: $1" ||exit 0
[ -n "$2" ] && echo "the 2nd paramter is: $2" ||exit 0
[ -n "$3" ] && echo "the 3th paramter is: $3" ||exit 0
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
echo "the script name is:$0"
[ -n "$1" ] && echo "the 1st paramter is: $1" ||exit 1
[ -n "$2" ] && echo "the 2nd paramter is: $2" ||exit 1
[ -n "$3" ] && echo "the 3th paramter is: $3" ||exit 1
$?与他们看不出有什么关系呀。
[ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK,continue" && exit 0
[ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK,continue" && exit 1
exit0和1加在这里有什么作用?和意义。
比如说脚本名字是run.sh,运行时的命令行是 ./run.sh arg1 arg2
这时$0就是脚本本身,也就是./run.sh,$1就是arg1,$2就是arg2...
至于exit 0首先是退出脚本,其次是指定脚本退出时的返回值,退出后,可以用$?得到这个值。
比如,脚本里退出时是执行的exit 1,这次脚本停止执行并退出,退出后,在shell里echo $?,会得到1这个值。一般来说,0代表成功,其它值代表失败,具体什么值代表什么错误就看写脚本时的约定了。
注意一点,$?一定是最近一次命令的结果,如果你执行脚本时exit 1,但是脚本退出后先执行了一个ls命令,这时ls命令的执行是成功的,那这时再echo $?,得到的就是ls的返回值 0,而不是脚本的exit 1了。
总结一下:$n是用来得到命令行参数,exit n是用来结束脚本并将执行结果返回给调用方,一般就是shell或另外的脚本,而$?是用来得到最近一次命令的返回值。
当命令成功完成, 返回0
发生错误并退回, 返回非0
网友解释:
当 exit 1 的时候,一般是出错定义这个1,也可以是其他数字,很多系统程序这个错误编号是有约定的含义的。 但不为0 就表示程序运行出错。 调用环境就可以根据这个返回值判断 你这个程序运行是否ok
你可以看看CU的帖子
exit 0 和 1 是shell 执行结果的
如果你执行这个shell,然后在终端里打echo $?
此时的值应该就是exit后面跟的值本回答被网友采纳