我想编写一个接受参数的 shell 脚本,然后将其应用于文件。
具体来说,我想给出一个术语,然后让它用 mxmlc 编译 term.as(“mxmlc term.as”),然后用 flashplayerdebugger 运行 term.swf(“flashplayerdebugger term.swf”)。我对 shell 脚本还很陌生 - 有什么想法吗?
答案1
你可以使用这样的方法:
#!/bin/sh
# $0 is the script name, $1 id the first ARG, $2 is second...
NAME="$1"
mxmlc $NAME.as
flashplayerdebugger $NAME.swf
答案2
我还建议您使用变量名分隔符。因此代码如下所示:
#!/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 is all”。变量将扩展,包括字符串内部的空格。如果 NAME 是“inside here”,则 NewName 将是“myFileIsinside hereand that is all”。
命令行最多可以接受 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"
玩得开心!