Escrevendo scripts com argumentos?

11

Eu quero escrever um script de shell que aceite um argumento e, em seguida, aplique-o aos arquivos.

Especificamente, eu quero dar um termo, e então compilar term.as com mxmlc ("mxmlc term.as"), então execute term.swf com flashplayerdebugger ("flashplayerdebugger term.swf"). Eu sou relativamente novo em escrever scripts - quaisquer pensamentos?

    
por southpointingchariot 16.08.2012 / 01:30

2 respostas

17

Você poderia usar algo assim:

#!/bin/sh
# $0 is the script name, $1 id the first ARG, $2 is second...
NAME="$1"
mxmlc $NAME.as
flashplayerdebugger $NAME.swf
    
por Dawid 16.08.2012 / 01:39
4

Eu também recomendo que você use o delimitador de nome de variável. Então, o código seria parecido com:

#!/bin/sh
# $0 is the script name, $1 id the first ARG, $2 is second...
NAME="$1"
mxmlc ${NAME}.as
flashplayerdebugger ${NAME}.sw

Isso permite o uso da variável em qualquer contexto, mesmo dentro de outro texto. Por exemplo:

NewName="myFileIs${NAME}and that is all"

Isso expandiria a variável NAME que seria flanqueada na frente por "myFileIs" e na parte de trás com "e isso é tudo". A variável expandiria, espaços incluídos, dentro da string. se NAME estiver "dentro daqui", o NewName será "myFileIsinside, e isso é tudo".

A linha de comando pode levar até 9 variáveis. Eles podem ser strings citadas que contêm espaços em branco, cada string entre aspas é contada como uma variável. Tais como:

./myProg var1 var 2 var3

Portanto, ${1} é "var1" , ${2} é "var" , ${3} é "2" , ${4} é "var3"

MAS: ./myProg var1 "var 2" var3

tem ${1} é "var1" , ${2} é "var 2" , ${3} é "var3"

Divirta-se!

    
por Hey Gary 02.09.2012 / 01:29