スクリプトは機能していました。コメントを追加して名前を変更してから送信しました。今日、私のインストラクターは、それが機能せずawk 1 unexpected character '.'
、スクリプトのエラーがコマンドラインで名前を読み取り、名前の学生情報を返すことになっていると私に言いました。今私はそれをチェックしました、そして驚くべきことにそれは私にエラーを与えます。次のようなコマンドで実行する必要があります。
scriptName -v name="aname" -f filename
この問題は何ですか?私のコードのどの部分がそれを引き起こしますか?
#!/usr/bin/awk
BEGIN{
tmp=name;
nameIsValid;
if (name && tolower(name) eq ~/^[a-z]+$/ )
{
inputName=tolower(name)
nameIsValid++;
}
else
{
print "you have not entered the student name"
printf "Enter the student's name: "
getline inputName < "-"
tmp=inputName;
if (tolower(inputName) eq ~/^[a-z]+$/)
{
tmpName=inputName
nameIsValid++
}
else
{
print "Enter a valid name!"
exit
}
}
inputName=tolower(inputName)
FS=":"
}
{
if($1=="Student Number")
{
split ($0,header,FS)
}
if ($1 ~/^[0-9]+$/ && length($1)==8)
{
split($2,names," ")
if (tolower(names[1]) == inputName || tolower(names[2])==inputName )
{
counter++
for (i=1;i<=NF;i++)
{
printf"%s:%s ",header[i], $i
}
printf "\n"
}
}
}
END{
if (counter == 0 && nameIsValid)
{
printf "There is no record for the %-10s\n" , tmp
}
}