Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux $? shell脚本_Linux_Shell - Fatal编程技术网

Linux $? shell脚本

Linux $? shell脚本,linux,shell,Linux,Shell,我试图弄清楚这意味着什么/如何在linux中填充$?,我尝试过进行搜索,但如果有人能澄清这一点,那就太好了: exitstat=$? if [ $exitstat -ne 0 ] then echo -e "Could Not Extract" echo -e "Aborting Script `date`" exit $exitstat fi 上面的代码是: _xfile << %% 2> /files/thefile-7000.log |

我试图弄清楚这意味着什么/如何在linux中填充
$?
,我尝试过进行搜索,但如果有人能澄清这一点,那就太好了:

exitstat=$?

if [ $exitstat -ne 0 ]
  then
    echo -e "Could Not Extract"
    echo -e "Aborting Script `date`"
    exit $exitstat
fi
上面的代码是:

_xfile << %%  2> /files/thefile-7000.log |  _afile -x -r 10 2> /files/thefile-7000.log > /files/thefile.7000
OperatorHigh = $finalnumber
%%
\u xfile/files/thefile-7000.log\u afile-x-r 102>/files/thefile-7000.log>/files/thefile.7000
运算符高=$finalnumber
%%

$?
扩展到最新前台命令的退出状态


由于之前的命令是管道,因此退出状态是管道中最后一个命令的状态——在本例中为
\u afile
--,除非设置了
pipefail
shell选项,在这种情况下,管道中其他地方的故障也会使退出状态变为非零。

$?
扩展到最近的前台命令的退出状态


由于之前的命令是管道,因此退出状态是管道中最后一个命令的状态——在本例中,除非设置了
pipefail
shell选项,否则退出状态为管道中最后一个命令的状态。在这种情况下,管道中其他地方的故障也会使退出状态变为非零。

显示退出状态(成功时为0,失败时为正整数至127)最后一条命令OK上面的命令,我明白了。顺便说一句,你可能不希望多个独立的重定向写入同一个文件,除非在追加模式下这样做。这会给意外的后果留下很大的空间。最好只打开一次FD,并在多个地方重用描述符,而不是单独打开几次。@CharlesDuffy不是我的脚本,但谢谢,我们遇到了随机错误的问题(这就是为什么我要研究它)。您能给我举个例子吗?谢谢!
exec 2>/files/thefile-7000.log
只需在脚本顶部重定向一次,就可以重定向整个脚本的stderr。相反,
exec 3>/files/thefile-7000.log
将重定向整个脚本的文件描述符3,然后您可以使用
exec 2>&3
将stderr转到任何地方该位置,而不必担心不同的句柄相互踩踏。显示退出状态(如果成功,则为0,如果失败,则为正整数高达127)最后一条命令OK上面的命令,我明白了。顺便说一句,你可能不希望多个独立的重定向写入同一个文件,除非在追加模式下这样做。这会给意外的后果留下很大的空间。最好只打开一次FD,并在多个地方重用描述符,而不是单独打开几次。@CharlesDuffy不是我的脚本,但谢谢,我们遇到了随机错误的问题(这就是为什么我要研究它)。您能给我举个例子吗?谢谢!
exec 2>/files/thefile-7000.log
只需在脚本顶部重定向一次,就可以重定向整个脚本的stderr。相反,
exec 3>/files/thefile-7000.log
将重定向整个脚本的文件描述符3,然后您可以使用
exec 2>&3
将stderr转到任何地方该位置,而不必担心不同的手柄相互踩踏。