gpt4 book ai didi

unix - 如果 [ $? -ne 0 ] 然后语法错误然后意外

转载 作者:行者123 更新时间:2023-12-01 17:36:57 28 4
gpt4 key购买 nike

我一直在尝试执行以下 UNIX shell 脚本,但它不起作用。我通过 KornShell (ksh) 运行它。

echo $?;
if [ $? -ne 0 ]
then
failed $LINENO-2 $5 $6
fi
failed()
{
echo "$0 failed at line number $1";
echo "moving $2 to failed folder"
}

这给出了一个错误,指出语法错误:然后意外。。基本上我必须检查最后执行的 ksh 脚本的最高/最后语句的返回代码,如果它不等于零,我必须使用给定的参数调用函数失败。我之前尝试过添加分号,但这也不起作用。

你能帮忙吗?

编辑1:根据我更改代码的输入。仍然存在同样的问题。

ksh ../prescript/Pre_process $1 $2 $3
rc=$?;
if [[ $rc -ne 0 ]];then
echo "failed";
exit 1;

编辑2:它通过使用双方括号来处理 then 部分。我觉得我使用了 ksh 的 bash 脚本代码。我在函数调用失败时遇到问题。请让我知道此示例中 ksh 中函数调用的适当方式

最佳答案

这看起来像 bash 而不是 ksh

failed() {  
echo "$0 failed at line number $1";
echo "moving $2 to failed folder"
}

if [[ $? -ne 0 ]]
then
failed $LINENO-2 $5 $6
fi

关于unix - 如果 [ $? -ne 0 ] 然后语法错误然后意外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3608400/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com