编译错误字符缺失-unix shell脚本

编译错误字符缺失-unix shell脚本

我需要在我的 UBM unix 目录中找到 3 个文件,如果有一个(CMUSER)文件可用意味着,那么我需要退出我的 unix 脚本,

下面是我的 unix shell 脚本逻辑。为什么我会收到编译错误?

cd /$UBCS
if [ -f /$UBM/CSUSER.LOCKED -o -f /$UBM/CSUSER.START]
     -o f /$UBM/CSUSER.UPDATE ];
then
   exit;
fi

我的编译错误如下

Enter script to execute: atm-autopbf
/rd23/gilbat/R2016/ubcs/atm-autopbf[38]: test: 0403-021 **A ] character is missing**
.
/rd23/gilbat/R2016/ubcs/atm-autopbf**[39]: -o:  **not found.****

 Not running C/S (SHELMATE MAXSESSIONS=0). Aborting ...

Press <ENTER> to continue:

答案1

你的剧本,

cd /$UBCS
if [ -f /$UBM/CSUSER.LOCKED -o -f /$UBM/CSUSER.START]
     -o f /$UBM/CSUSER.UPDATE ];
then
   exit;
fi

有语法错误。你的[ ... ]if 语句不平衡。您还需要在/$UBM/CSUSER.START和 下面的之间有一个空格]

#!/bin/sh

cd "/$UBCS" || exit 1

if [ -f "/$UBM/CSUSER.LOCKED" ] ||
   [ -f "/$UBM/CSUSER.START"  ] ||
   [ -f "/$UBM/CSUSER.UPDATE" ]
then
   exit
fi

请尝试将脚本粘贴到 ShellCheck 中:https://www.shellcheck.net/

另外,你没有得到汇编shell 脚本的错误(因为它们未编译)。他们是解析错误。

相关内容