Написание скриптов с аргументами?
Я хочу написать сценарий оболочки, который принимает аргумент, а затем применяет его к файлам.
В частности, я хочу дать термин и затем скомпилировать 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"
Повеселись!