上記のエラーが発生しており、コード化できません。誰かがエラーをチェックし、私にそれを実行できるように私に知らせてもらうことができますか?これは置換アルゴリズムを使用しています。これが解決できるなら、非常に感謝します。ありがとうございました。予期しないトークンの近くで構文エラーが発生しました
#!/bin/bash
#
cnt=0 #page fault
k=0 #pointer
pg=(0 0 0 0) #frame_number
IFS=";"","
filecontent=`cat < Input.csv`
array=($filecontent)
echo -e "Page Fault \tpage 0 \t page 1\t page 2\tpage 3 "
for ((a=0; a<${#array[@]}; ++a))
do
frame[$a]="-"
usebit[$a]= 0
for pg in "${array[$a]}";
do
flag=false
for ((a=0; a<${#array[@]}; ++a));
do
if [${frame[$b]} = $pg];
then
usebit[$b]=1
flag=true
break
fi
done
let check=0
if [ $flag=false];
then
while ($check -le $array];
if [${usebit[$k]}=1;
then
usebit[$k]=0
let "k++"
else
frame[$k]=$pg
usebit[$k]=1
echo "Page Fault = replace frame $k"
let "cnt++"
let "k++"
if [$k = $array];
then
k=0
fi
break;
fi
if [$k = $array];
then
k=0
fi
let "check++"
done
echo -e " $cnt \t\t ${pg[0]}\t ${pg[1]} \t ${pg[2]} \t ${pg[3]} "
done
echo "The number of page fault for page frame of 4 in clock policy
algorithm is $cnt"
いくつかの構文エラーがあります。良い出発点は、あなたのコードをシェルチェッカーに貼り付けることです:http://www.shellcheck.net/そしてあなたのコードはそのテストに合格します。 – odradek
条件文とループをすべて終了しているわけではありません。 $ {usebit [$ k]} -eq 1]が '$ {usebit [$ k]} = 1'でなければならない場合は、' 'f''と' 'done''のいずれかが不一致とみなされます。 –
単なる一例 - 少なくとも1つ以上あります –