Критика:
# User-defined Function (UDF)
processLine(){
index=$1 # First argument is the index
shift # Remove the index
# Grab the content - "$*" is fine here,
# and $* or $@ without quotes would probably work
# And do the editing in a single tr operation
# And document what we're doing completely
# Let's tr it to remove double-quotes (42) and lfs (12) and comma (54)!
content=$(echo "$*" | tr -d \012\042\054)
# - THEN APPEND THE LINE to OUTPUT FILE
# Single quotes around the comma are unnecessary
echo $index,$content >>OUTPUT
# - ALSO, save 'raw' individual student data as a backup
echo $content >STUDENTS/STUDENT.$index
}
В этом нет ничего, что бы добавляло (или удаляло) двойные кавычки в индексе, поэтому вызов этого кода должен заключаться в том, чтобы заключать в них кавычки.
Вы говорите, что имя выходного файла:
СТУДЕНТ. "7534" - который даже нельзя открыть.
Его можно открыть, если вы помните, что оболочка удаляет двойные кавычки, поэтому вы должны остановить это, выполнив это:
cat 'STUDENT."7534"'
Все, что вам нужно сделать, это убедить ваших инструкторов, что это мера предосторожности, чтобы они знали достаточно оболочки, чтобы иметь доступ к вашим защищенным файлам.