`exit $?`与bash中的`exit`有意义不同?
发布时间:2020-12-15 22:03:41 所属栏目:安全 来源:网络整理
导读:我的理解是,在bash中,普通出口将完成一个脚本,其中包含最后一个命令的退出状态.但我也看到人们使用退出$?当我提出它具有相同的行为时被质疑. 这两个脚本之间有什么有意义的区别吗? #!/bin/bashfoobarexit 和 #!/bin/bashfoobarexit $? 解决方法 没有区别.
我的理解是,在bash中,普通出口将完成一个脚本,其中包含最后一个命令的退出状态.但我也看到人们使用退出$?当我提出它具有相同的行为时被质疑.
这两个脚本之间有什么有意义的区别吗? #!/bin/bash foo bar exit 和 #!/bin/bash foo bar exit $? 解决方法
没有区别.如果在没有参数的情况下调用exit,它将返回最后一个命令的退出代码.
这是GNU bash的代码.如果没有给出参数,则返回last_command_exit_value,否则它接受传入的参数,确保它是一个数字,切掉超过8的任何位并返回. 486 get_exitstat (list) 487 WORD_LIST *list; 488 { 489 int status; 490 intmax_t sval; 491 char *arg; 492 493 if (list && list->word && ISOPTION (list->word->word,'-')) 494 list = list->next; 495 496 if (list == 0) 497 return (last_command_exit_value); 498 499 arg = list->word->word; 500 if (arg == 0 || legal_number (arg,&sval) == 0) 501 { 502 sh_neednumarg (list->word->word ? list->word->word : "`'"); 503 return EX_BADUSAGE; 504 } 505 no_args (list->next); 506 507 status = sval & 255; 508 return status; 509 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |