在使用tcpdump抓包的时候遇到命令返回值为256的情况, 原命令为
tcpdump -r test.pcap
经过查了一波资料可能是因为pcap数据包不完整导致命令报错, 也是第一次遇到报0 和 1 以外的码, 所以记录一下. 原来shell中有一些特殊退出码.
退出码的值 | 含义 | 例子 | 注释 |
---|---|---|---|
1 | 通用错误 | let “var1 = 1/0” | 各种各样的错误都可能使用这个退出码, 比如"除0错误" |
2 | shell内建命令使用错误(Bash文档上有说明) | 很少看到, 通常情况下退出码都为1 | |
126 | 命令调用不能执行 | 程序或命令的权限是不可执行的 | |
127 | “command not found” | 估计是$PATH 不对, 或者是拼写错误 | |
128 | exit的参数错误 | exit 3.14159 | exit只能以整数作为参数, 范围是0 - 255(见脚注) |
128+n | 信号"n"的致命错误 | kill -9 脚本的$PPID | $? 返回137(128 + 9) |
130 | 用Control-C来结束脚本 | Control-C是信号2的致命错误, (130 = 128 + 2, 见上边) | |
255* | 超出范围的退出状态 | exit -1 | exit命令只能够接受范围是0 - 255的整数作为参数 |
注: 超出范围的退出值可能会产生意想不到的退出码. 如果退出值比255大, 那么退出码将会取256的模