Você está confundindo bash com csh .
Em bash como em qualquer shell parecido com o Bourne, set é o comando para as opções definir (configurações de shell como -f , -C , -o noclobber ...) e parâmetros posicionais ( $1 , $2 .. .).
set FILEM="razrax"
Define $1 para FILEM=razrax .
$ set FILEM="razrax"
$ echo "$1"
FILEM=razrax
A sintaxe para a atribuição de variáveis em shells semelhantes a Bourne é:
VAR=value
(nenhum espaço permitido em ambos os lados de = ).
ksh e alguns outros shells parecidos com Bourne (mksh, pdksh, zsh) também podem atribuir variáveis de array com set embora:
set -A array value1 value2
zsh , bash , yash e versões mais recentes de ksh usam esta sintaxe:
array=(value1 value2)
Por outro lado, em csh ou tcsh , a sintaxe é:
set VAR = value
set array = (value1 value2)
(espaços em torno de = opcional).
Em rc / es shells:
VAR = value
array = (value1 value2)
(espaços em torno de = opcional).