我在编写代码方面非常陌生,所以这可能是一个愚蠢的问题,但是对于提高我的学习水平,答案是非常赞赏的。我写了一个简单的bash脚本,如下所示。但是,如何使用循环数组优化此代码?我可以理解,如果使用两个循环,可以使代码行更短。请帮助:
<form>
<label><b>Please give your input: </b></label>
<input type="text" name="message" id="user_input">
</form>
<input type="submit" onclick="showOutput();"><br/>
<label>Your output is : </label>
<p><span id='display'></span></p>
在此步骤中的上述代码中
#!/bin/bash
zs=10.0.3.10
zb=/usr/local/bin/zabbix_sender
zh=zabbix
# ql1 = queue link
ql1=https://sqs.us-west-2.amazonaws.com/843390035802/testService1
val1=$(aws sqs get-queue-attributes --queue-url $ql1 --attribute-names ApproximateNumberOfMessages --region us-west-2 --output text | awk '{print $2}')
echo "$ql1 count is $val1"
$zb -z $zs -s $zh -k testService1 -o val1 >/dev/null 2>&1
ql2=https://sqs.us-west-2.amazonaws.com/853390078801/testService2
val2=$(aws sqs get-queue-attributes --queue-url $ql2 --attribute-names ApproximateNumberOfMessages --region us-west-2 --output text | awk '{print $2}')
echo "$ql2 count is $val2"
$zb -z $zs -s $zh -k testService2 -o val2 >/dev/null 2>&1
ql3=https://sqs.us-west-2.amazonaws.com/843393305801/testService3
val3=$(aws sqs get-queue-attributes --queue-url $ql3 --attribute-names ApproximateNumberOfMessages --region us-west-2 --output text | awk '{print $2}')
echo "$ql3 count is $val3"
$zb -z $zs -s $zh -k testService3 -o val3 >/dev/null 2>&1
ql4=https://sqs.us-west-2.amazonaws.com/875660005801/testService4
val4=$(aws sqs get-queue-attributes --queue-url $ql4 --attribute-names ApproximateNumberOfMessages --region us-west-2 --output text | awk '{print $2}')
echo "$ql4 count is $val4"
$zb -z $zs -s $zh -k testService4 -o val4 >/dev/null 2>&1
ql5=https://sqs.us-west-2.amazonaws.com/843390635802/testService5
val5=$(aws sqs get-queue-attributes --queue-url $ql5 --attribute-names ApproximateNumberOfMessages --region us-west-2 --output text | awk '{print $2}')
echo "$ql5 count is $val5"
$zb -z $zs -s $zh -k testService2 -o val5 >/dev/null 2>&1
我使用$zb -z $zs -s $zh -k testService2 -o val5 >/dev/null 2>&1
作为5个不同的值。那么如何安排它并像上面一样处理代码?
答案 0 :(得分:0)
一个循环足以消除代码重复,并且我们不需要数组-我们可以在循环中的另一个之后读取一个 queue链接。可以通过使用shell parameter expansion {{1}删除直到最后-k
的URL部分,从队列链接中提取选项/
的变量参数。 }。
${parameter##word}