这个 bash 脚本实际上做了什么


#!/bin/bash
# Setup Variables
hostName=localhost
portNum=8080
SOLRPATH=/solr
SOLR='delta-import&clean=false'
STATUS='dataimport?command=status'
urlCmd='http://${hostName}:${portNum}${SOLRPATH}/dataimport?command=${SOLRCMD}"
statusCmd='http://${hostName}:${portNum}${SOLRPATH}/dataimport?command=${STATUS}"
myStdErrLog=/tmp/myProject/myProg.stderr.$(/bin/date +%Y%m%d.%H%M)
outputDir=. 
# Operations
wget -O $outputDir/check_status_update_index.txt ${statusCmd} 2> ${myStdErrLog}
status=$(fgrep idle $outputDir/check_status_update_index.txt) 
case "${status}" in 
    *idle* ) .... ;; 
    * ) echo "unknown status = ${status} or similar" 1>&2 ;; 
 esac

我真正理解的是,我们从变体中构建了urlcmd和statuscmd,但我不明白该操作的作用。谁能说出一些启示?

首先,行中有错误

urlCmd='..."
statusCmd='..."
由于它们以双引号

结尾并包含变量,因此它们也需要以双引号开头。

从不使用变量urlCmd。不是错误,但也不是很好。

wget通过statusCmd检索状态,fgrep尝试提取状态。然后在 case 语句中评估此状态。

一般来说,它看起来像是尝试从网站下载数据并将状态传输到myStdErrLog。

相关内容

  • 没有找到相关文章

最新更新