Quero escrever um script de shell que use um argumento e o aplique aos arquivos.
Especificamente, quero dar um termo e depois compilá-lo term.as com mxmlc ("mxmlc term.as"), depois execute term.swf com flashplayerdebugger ("flashplayerdebugger term.swf"). Eu sou bastante novo para scripts de shell - alguma opinião?
bash
scripts
command-line
southpointingchariot
fonte
fonte
$2
é o primeiro argumento,$3
o segundo e assim por diante.$1
está reservado para o nome do arquivo. Quanto às outras coisas, não entendo bem o que você quer dizer. Você poderia tentar explicar um pouco melhor ou escrever algum código psued?"$1"
é o primeiro argumento.Respostas:
Você poderia usar algo como isto:
fonte
NAME
variável completamente e usemxmlc "$1".as
eflashplayerdebugger "$1".swf
. (Cotações pode estar dentro de expressões.)nxmlc
eflashplayerdebugger
vai ter vários argumentos em vez do pretendido um argumento. A expansão dasNAME
necessidades precisa ser citada duas vezes. Em uma nota lateral, não use todos os nomes de variáveis em maiúsculas; você corre o risco de substituir variáveis especiais do shell ou variáveis de ambiente.Eu também recomendo que você use o delimitador de nome de variável. Portanto, o código ficaria assim:
Isso permite o uso da variável em qualquer contexto, mesmo dentro de outro texto. Por exemplo:
Isso expandiria a variável NAME, que seria flanqueada na frente por "myFileIs" e na parte traseira com "e isso é tudo". A variável expandiria, incluindo espaços, dentro da cadeia. se NAME estivesse "aqui dentro", o NewName seria "myFileIsinside hereand that is all".
A linha de comando pode levar até 9 variáveis. Eles podem ser strings entre aspas que contêm espaços em branco, cada string entre aspas conta como uma variável. Tal como:
./myProg var1 var 2 var3
Então
${1}
é"var1"
,${2}
é"var"
,${3}
é"2"
,${4}
é"var3"
MAS:
./myProg var1 "var 2" var3
tem
${1}
é"var1"
,${2}
é"var 2"
,${3}
é"var3"
Diverta-se!
fonte