嗨,我正在尝试在脚本中运行 shell 代码,但遇到一些错误



所以在执行之后,我在这个idf case语句中得到了错误的模糊重定向,这个脚本在bash中,我正在尝试解决它,但可能我需要一些帮助

mapfile lineno < /home/admin/mqconfig_backup/playground/linesno.txt
mapfile queueno < /home/admin/mqconfig_backup/playground/queueno.txt
echo ${lineno[@]}
echo ${queueno[@]}
declare -a P1
lenoflineno=`echo "${#lineno[@]}"`
lenofqueueno=`echo "${#queueno[@]}"`
for((i= 0 ; i <= $lenoflineno ; i++));
do
for((j= 0 ; j <= $lenoflineno ; j++));
do
echo $lineno[i]
echo $queueno[j]
if [ $qeueno[j] < $lineno[i] < $queueno[j + 1] ];
then
P1+=($queueno[i])
fi
done
done

你做了一个重复的问题。

假设以下输入文件(我取了与您的另一个问题相同的数字(:

  • linesno.txt包含1 6 8 10 15 20每行一个数字
  • queueno.txt包含2 5 8 9 11 16 19每行一个数字

您可以尝试:

#!/usr/bin/env bash
# Use "-t" to avoid the 'n' in the array values
mapfile -t lineno < linesno.txt
mapfile -t queueno < queueno.txt
declare -a P1
# simply assign ${#array[@]}, do not use echo
lenoflineno=${#lineno[@]}
lenofqueueno=${#queueno[@]}
# from 0 to (size - 1)
for ((i = 0; i < lenoflineno; i++)); do
# from 0 to (size - 2), as we refer to queueno[j + 1] below
for ((j = 0; j < lenofqueueno - 1; j++)); do
# there are two compare operations, we need to write them separately
(( queueno[j] < lineno[i] && lineno[i] < queueno[j + 1] )) &&
P1+=("${lineno[i]}")
done
done
printf "%sn" "${P1[*]}"

输出:

6 10 15

相关内容

  • 没有找到相关文章

最新更新