Я хочу написать сценарий оболочки, который принимает аргумент, а затем применяет его к файлам.
В частности, я хочу дать термин и затем скомпилировать term.as с помощью mxmlc («mxmlc term.as»), затем запустить term.swf с flashplayerdebugger («flashplayerdebugger term.swf»). Я довольно новичок в написании сценариев оболочки - есть мысли?
bash
scripts
command-line
southpointingchariot
источник
источник
$2
это первый аргумент,$3
второй и так далее.$1
зарезервировано для имени файла. Что касается других вещей, я не совсем понимаю, что вы имеете в виду. Не могли бы вы попытаться объяснить это немного лучше или написать псевдокод?"$1"
это первый аргумент.Ответы:
Вы можете использовать что-то вроде этого:
источник
NAME
вообще пропустите переменную и просто используйтеmxmlc "$1".as
иflashplayerdebugger "$1".swf
. (Цитаты могут быть внутри выражений.)nxmlc
иflashplayerdebugger
получит несколько аргументов вместо предполагаемого одного аргумента. РасширениеNAME
должно быть в двойных кавычках. Кстати, не используйте все имена переменных в верхнем регистре; вы рискуете перезаписать специальные переменные оболочки или переменные окружения.Я также рекомендую использовать разделитель имени переменной. Таким образом, код будет выглядеть так:
Это позволяет использовать переменную в любом контексте, даже внутри другого текста. Например:
Это расширило бы переменную 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"
Веселиться!
источник