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
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?
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
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!
Tags command-line bash scripts