Ответы:
Вы путаете bashс csh.
В , bashкак и в любом Bourne-подобные оболочкам, setэто команда набора опций (параметры конфигурации оболочки нравятся -f, -C, -o noclobber...) и позиционные параметры ( $1, $2...).
set FILEM="razrax"
Устанавливается $1в FILEM=razrax.
$ set FILEM="razrax"
$ echo "$1"
FILEM=razrax
Синтаксис для назначения переменных в Bourne-подобных оболочках:
VAR=value
(не допускается места по обе стороны =).
kshи некоторые другие Bourne-подобные оболочки (mksh, pdksh, zsh) также могут назначать переменные массива с помощью set:
set -A array value1 value2
zsh, bash, yashИ новые версии kshиспользовать этот синтаксис вместо этого:
array=(value1 value2)
Напротив, в cshили tcsh, синтаксис:
set VAR = value
set array = (value1 value2)
(пробелы вокруг =необязательно).
В rc/ esоболочки:
VAR = value
array = (value1 value2)
(пробелы вокруг =необязательно).
set -Cустанавливает -Cпараметр (так же, как set -o noclobber). set fooназначает fooк $1(и $#равно 1, ( $2, $3убираются если установлено ранее)). Проверьте руководство вашей оболочки для деталей.