Quiero escribir un script de shell que tome un argumento y luego lo aplique a los archivos.
Específicamente, quiero dar un término, y luego hacer que compile term.as con mxmlc ("mxmlc term.as"), luego ejecute term.swf con flashplayerdebugger ("flashplayerdebugger term.swf"). Soy bastante nuevo en los scripts de shell, ¿alguna idea?
bash
scripts
command-line
Southpointingchariot
fuente
fuente
$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?"$1"
Es el primer argumento.Respuestas:
Podrías usar algo como esto:
fuente
NAME
variable por completo y simplemente usemxmlc "$1".as
yflashplayerdebugger "$1".swf
. (Las citas pueden estar dentro de expresiones.)nxmlc
yflashplayerdebugger
recibirá varios argumentos en lugar de la intención de un argumento. La expansión de lasNAME
necesidades debe ser doblemente citada. En una nota al margen, no use todos los nombres de variables en mayúsculas; corre el riesgo de sobrescribir variables de shell especiales o variables de entorno.También te recomiendo que uses el delimitador de nombre de variable. Entonces el código se vería así:
Esto permite el uso de la variable en cualquier contexto, incluso dentro de otro texto. Por ejemplo:
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!
fuente