Respostas:
Você está confuso bash
com csh
.
Em bash
como em qualquer Bourne-como o escudo, set
é o comando para definir opções (definições de configuração shell gosto -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 atribuição de variável em shells tipo Bourne é:
VAR=value
(não é permitido espaço nos dois lados =
).
ksh
e alguns outros shells tipo Bourne (mksh, pdksh, zsh) também podem atribuir variáveis de matriz com set
:
set -A array value1 value2
zsh
, bash
, yash
E versões mais recentes do ksh
uso essa sintaxe em vez disso:
array=(value1 value2)
Por outro lado, em csh
ou tcsh
, a sintaxe é:
set VAR = value
set array = (value1 value2)
(espaços ao redor =
opcional).
Em rc
/ es
conchas:
VAR = value
array = (value1 value2)
(espaços ao redor =
opcional).
set -C
define a -C
opção (igual a set -o noclobber
). set foo
atribui foo
a $1
(e $#
é 1, ( $2
, $3
não está definido se definido anteriormente)). Verifique o manual do seu shell para obter detalhes.