También te recomiendo que uses el delimitador de nombre de variable. Entonces el código se vería así:
#!/bin/sh
# $0 is the script name, $1 id the first ARG, $2 is second...
NAME="$1"
mxmlc ${NAME}.as
flashplayerdebugger ${NAME}.sw
Esto permite el uso de la variable en cualquier contexto, incluso dentro de otro texto. Por ejemplo:
NewName="myFileIs${NAME}and that is all"
Esto expandiría la variable NAME que estaría flanqueada al frente por "myFileIs" y en la parte posterior con "y eso es todo" La variable se expandiría, espacios incluidos, dentro de la cadena. si NAME estuviera "dentro de aquí", el NewName sería "myFileIsinside hereand eso es todo".
La línea de comando puede tomar hasta 9 variables. Pueden ser cadenas entre comillas que contienen espacios en blanco, cada cadena entre comillas cuenta como una variable. Como:
./myProg var1 var 2 var3
Así ${1}
es "var1"
, ${2}
es "var"
, ${3}
es "2"
, ${4}
es"var3"
PERO:
./myProg var1 "var 2" var3
tiene ${1}
es "var1"
, ${2}
es "var 2"
, ${3}
es"var3"
¡Que te diviertas!
$2
es el primer argumento,$3
el segundo, y así sucesivamente.$1
está reservado para el nombre del archivo. En cuanto a las otras cosas, no entiendo lo que quieres decir. ¿Podrías intentar explicarlo un poco mejor o escribir un código psuedo?