Написание скриптов с аргументами?

Я хочу написать сценарий оболочки, который принимает аргумент, а затем применяет его к файлам.

В частности, я хочу дать термин и затем скомпилировать term.as с помощью mxmlc ("mxmlc term.as"), а затем запустить term.swf с flashplayerdebugger ("flashplayerdebugger term.swf"). Я довольно новичок в написании сценариев оболочки - есть мысли?

2 ответа

Решение

Вы можете использовать что-то вроде этого:

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

Я также рекомендую использовать разделитель имени переменной. Таким образом, код будет выглядеть так:

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

Это позволяет использовать переменную в любом контексте, даже внутри другого текста. Например:

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

Это расширило бы переменную NAME, которая была бы впереди с "myFileIs", а сзади с "и это все". Переменная расширилась бы, включая пробелы, внутри строки. если бы NAME находился "внутри здесь", NewName было бы "myFileIsinside here here, и это все".

Командная строка может принимать до 9 переменных. Это могут быть строки в кавычках, содержащие пробелы, каждая строка в кавычках считается переменной. Такие как:

./myProg var1 var 2 var3

Так ${1} является "var1", ${2} является "var", ${3} является "2", ${4} является "var3"

НО:./myProg var1 "var 2" var3

имеет ${1} является "var1", ${2} является "var 2", ${3} является "var3"

Повеселись!

Другие вопросы по тегам