0

有人可以告诉我设置 flag1 有什么问题吗?我收到 flag1 的错误:未定义的变量。

if($notLoaded1 > 0) then
  echo "Rows not loaded due to data errors in first load: $notLoaded1"
  set flag1=1
endif

if($notLoaded2 > 0) then
  echo "Rows not loaded due to data errors in second load: $notLoaded2"
  set flag2=1
endif

if($notLoaded3 > 0) then
  echo "Rows not loaded due to data errors in third load: $notLoaded3"
  set flag3=1
endif

echo $flag1
echo $flag2
echo $flag3

有没有办法在一个 if 语句中检查所有三个,而不是使用 3 个 if 语句

if ($flag1 > 0) then
  exit 1
endif

if ($flag2 > 0) then
  exit 1
endif

if ($flag3 > 0) then
  exit 1
endif

谢谢

4

2 回答 2

0

flag1仅在$notLoaded1大于 0 时设置。因此,如果为零,则不会获得 $flag1。

我建议事先使用默认值初始化这三个变量:

set flag1=0
if (...) the
    set flag1=1
    echo 'Rows not loaded...'
endif

这将保证 flag1 始终存在。

于 2011-07-21T19:45:34.773 回答
0

你需要 3 个标志变量来做什么?

set error=0

if ($notLoaded1 > 0) then
  echo "Rows not loaded due to data errors in first load: $notLoaded1"
  set error=1
endif

if ($notLoaded2 > 0) then
  echo "Rows not loaded due to data errors in second load: $notLoaded2"
  set error=1
endif

if ($notLoaded3 > 0) then
  echo "Rows not loaded due to data errors in third load: $notLoaded3"
  set error=1
endif

if ($error) then
  exit 1
endif
于 2011-07-21T20:04:34.003 回答