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

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

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

11
задан 16 August 2012 в 03:30

2 ответа

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

#!/bin/sh
# $0 is the script name, $1 id the first ARG, $2 is second...
NAME="$1"
mxmlc $NAME.as
flashplayerdebugger $NAME.swf
19
ответ дан 23 November 2019 в 03:55

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

#!/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"

Это развернуло бы имя переменной, которое будет обрамляться впереди "myFileIs" и сзади с, "и это весь" переменная, расширился бы, включенные пробелы, в строке. если бы ИМЕНЕМ был "внутри здесь" NewName, то был бы "myFileIsinside hereand, который является всем".

Командная строка может взять до 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"

Развлекайтесь!

4
ответ дан 16 August 2012 в 03:30

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

Похожие вопросы: