0
#!/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,但我不明白该操作的作用。任何人都可以解释一下吗?

4

2 回答 2

2

首先,行中有错误

urlCmd='..."
statusCmd='..."

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

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

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

于 2012-11-18T22:33:54.970 回答
1

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

于 2012-11-18T22:34:11.113 回答