【问题标题】:What is the wrong with the script [duplicate]脚本有什么问题[重复]
【发布时间】:2018-02-23 06:28:50
【问题描述】:

我的脚本在 Bash 中抛出错误:

/tmp/hudson6482258714933636361.sh: line 7: ((: i <=  : syntax error:operand expected (error token is "<=  ")
cp: cannot stat 

‘/var/jenkins_home/jobs/Latha/jobs/ShirePoc/jobs/RetrieveJob/workspace/Deploy/retrieveUnpackaged/*’: No such file or directory

这是脚本:

COUNT= $(ls -1 | wc -l)
echo $COUNT
for (( i=1 ; i <= $COUNT ; i++ ));
do
  var=package$i.xml
  echo "FILENAME is $var"
  mv -f $var package.xml
  mkdir ${WORKSPACE}/Deploy/unpackaged
  cp -R ${WORKSPACE}/tools/Package/package.xml ${WORKSPACE}/Deploy/unpackaged/
  cd ${WORKSPACE}/Deploy/unpackaged 
  cat package.xml
  ls -ltra
  cd ${WORKSPACE}/Deploy/
  ls -ltr
  ant -buildfile build.xml RetrieveComponent
done

为什么脚本会导致错误?

【问题讨论】:

标签: linux bash shell


【解决方案1】:

我相信罪魁祸首是您的COUNT 变量,将其更改为如下:

COUNT=$(ls -1 | wc -l)

=$ 之间似乎有空格。请检查并告诉我们情况如何。

【讨论】:

    【解决方案2】:

    除了RavinderSingh13 答案,还要更新你所有的变量调用为:

    $i -----> ${i}
    

    这样做将有助于内核清楚地理解变量名称,并会插入名称。

    【讨论】:

    • 内核不解释脚本,shell 解释;并且大括号对于解决 OP 的问题不是必需的或有用的。
    猜你喜欢
    • 2021-09-11
    • 2016-11-15
    • 2013-09-26
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    相关资源
    最近更新 更多