[英]Why do I keep getting syntax error in my bash script? Does it have something related to the “:”?
我正在尝试计算 errorList 数组中每个项目的错误,但我不断收到“表达式中的语法错误(错误标记是“:只是一个测试”)”。
#!/bin/bash
declare -a errorList=(
'MEDIA ERROR: just a test'
'MEDIA BLA: resource unavaliable!'
'DIALOG: Found PROBLEM ev_id="EV_ID"'
)
declare -a errorListNames=(
"Silence"
"Unavaliable"
"Environment error"
)
pathLogs="/home/logs_test/"
logFileName="media.log.*"
dateLog="10-10-2019"
fgrep "$dateLog" $pathLogs$logFileName > grepedByDate.txt
for i in "${errorList[@]}"
do
fgrep -c "${ errorList[i], }" grepedByDate.txt
echo "${errorListNames[i]}"
done
echo "Bye"
!
或#
获取密钥代替:
for i in "${errorList[@]}"
利用:
for i in ${!errorList[@]}"
或者:
maxIndex=${#errorList[@]}
for (( i=0; i<$maxIndex; i++ ))
代替:
fgrep -c "${ errorList[i], }" grepedByDate.txt
利用:
fgrep -c "${errorList[i]}" grepedByDate.txt
您可以使用关联数组:
#!/usr/bin/env bash
declare -A errors=(
[Unavailable]='MEDIA ERROR: Resource unavailable'
)
for i in "${!errors[@]}"; do
echo "$i: ${errors[$i]}"
done
${!errors[@]}
扩展为键( Unavailable
,...)并存储在$i
${errors[$i]}
扩展为给定键$i
的值( MEDIA ERROR...
,...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.