Answers:
您可以使用如下形式:
#!/bin/sh
# $0 is the script name, $1 id the first ARG, $2 is second...
NAME="$1"
mxmlc $NAME.as
flashplayerdebugger $NAME.swf
NAME
完全跳过变量,仅使用mxmlc "$1".as
and即可flashplayerdebugger "$1".swf
。(行情可以在表达式内。)
nxmlc
和flashplayerdebugger
将获得多个参数而不是预期的一个参数。扩展NAME
需要双引号。附带说明一下,不要使用所有大写的变量名。您可能会覆盖特殊的Shell变量或环境变量。
我还建议您使用变量名定界符。因此,代码如下所示:
#!/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”,在其后侧为“ and that all”。该变量将在字符串内部扩展,包括空格。如果NAME位于“此处”,则NewName将为“ myFileIsinside,仅此而已”。
命令行最多可以包含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
保留为文件名。至于其他东西,我不太明白你的意思。您能尝试更好地解释它还是写一些伪代码?