내가 무엇을 놓치고 있나요? 배열 오류가 발생합니다.

내가 무엇을 놓치고 있나요? 배열 오류가 발생합니다.

ac 프로그램을 쉘로 변환하려고합니다. 하지만 오류가 발생합니다. 절차는 다음과 같습니다.

$bt[]
$pri[]
$pp[]
$temp


echo "Enter the number of processes: "
read n
for((i=1;i<=n;i++));
do
  pp[$i] = $i;
  echo "Enter the Burst Time & Priority of Process: "
        #scanf("%d %d",&bt[i], &pri[i]);
  read bt[$i]
  read pri[$i]
 echo $i
done

for((i=1;i<=n;i++));
do
  for((k=i+1; k<n; k++));
  do
    if(pri[$i] -gt pri[$k])
      then
      echo "(string comparison)"
      temp=pp[$i]
      pp[$i]=pp[$k]
      pp[$k]=temp
      temp=bt[$i]
      bt[$i]=bt[$k]
      bt[$k]=temp
      temp=pri[$i]
      pri[$i]=pri[$k]
      pri[$k]=temp
    fi
  done
done

wt[0] = 0
tat[0] = bt[0]
for((i=1; i<n; i++));
  do
      wt[$i] = tat[$i-1]
      tat[$i] = wt[$1] +bt[$i]
  done
echo -e "\nPROCESS\t\tPRIORITY\tBURST TIME\tWAITING TIME\tTURNAROUND TIME"
for((i=1; i<=n; i++));
do
  #echo -e "%s \t\t %s \t\t %s \t\t %s \t\t %s " "p[i],pri[i],bt[i],wt[i],tat[i]"
echo -e "${p[i]} \t\t ${pri[i]} \t\t ${bt[i]} \t\t ${wt[i]} \t\t ${tat[i]} "
done

도와주세요. 나는 bash 프로그래밍의 구문을 모른다.

답변1

이 질문에 답할 사람은 없을 것 같아요. 좋아요, 그게 답이에요. 이러한 오류를 해결하기 위해 @Kusalananda의 도움을 받았습니다.

#!/bin/bash
${bt[]}
${pri[]}
${pp[]}
$temp
${wt[]}
${tat[]}

echo "Enter the number of processes: "
read -r n
for((i=1;i<=n;i++));
do
  pp[$i]=$i
  echo "Enter the Burst Time & Priority of Process: "
        #scanf("%d %d",&bt[i], &pri[i]);
  read -r bt[$i]
  read -r pri[$i]
 echo "$i"
done

for((i=1;i<=n;i++));
do
  for((k=i+1; k<n; k++));
  do
    if("${pri[$i]}-gt${pri[$k]}")
      then
      echo "(string comparison)"
      temp=${pp[$i]}
      pp[$i]=${pp[$k]}
      pp[$k]=temp
      temp=${bt[$i]}
      bt[$i]=${bt[$k]}
      bt[$k]=temp
      temp=${pri[$i]}
      pri[$i]=${pri[$k]}
      pri[$k]=temp
    fi
  done
done

wt[0]=0
tat[0]=${bt[0]}
for((i=1; i<n; i++));
  do
      wt[$i]=${tat[$i-1]}
      tat[$i]=${wt[1]}+${bt[$i]}
  done
echo -e "\nPROCESS\t\tPRIORITY\tBURST TIME\tWAITING TIME\tTURNAROUND TIME"
for((i=1; i<=n; i++));
do
  #echo -e "%s \t\t %s \t\t %s \t\t %s \t\t %s " "p[i],pri[i],bt[i],wt[i],tat[i]"
echo -e "${pp[i]} \t\t ${pri[i]} \t\t ${bt[i]} \t\t ${wt[i]} \t\t ${tat[i]} "
done

감사해요. 신용은 다음과 같습니다https://www.shellcheck.net/그리고프로그래밍 보스.

관련 정보