Я хочу написать скрипт оболочки, который принимает аргумент, а затем применяет его к файлам.
В частности, я хочу дать термин и затем скомпилировать term.as с помощью mxmlc («mxmlc term.as»), а затем запустить term.swf с flashplayerdebugger («flashplayerdebugger term.swf»). Я довольно новичок в написании сценариев оболочки - есть мысли?
Вы могли использовать что-то вроде этого:
#!/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"
Это развернуло бы имя переменной, которое будет обрамляться впереди "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"
Развлекайтесь!