Я также рекомендую использовать разделитель имени переменной. Таким образом, код будет выглядеть так:
#!/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"
Веселиться!
$2
это первый аргумент,$3
второй и так далее.$1
зарезервировано для имени файла. Что касается других вещей, я не совсем понимаю, что вы имеете в виду. Не могли бы вы попытаться объяснить это немного лучше или написать псевдокод?