#!/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。