sou*_*iot 11 command-line bash scripts
我想编写一个带参数的 shell 脚本,然后将其应用于文件。
具体来说,我想给出一个term,然后让它用mxmlc(“mxmlc term.as”)编译term.as,然后用flashplayerdebugger(“flashplayerdebugger term.swf”)运行term.swf。我对 shell 脚本很陌生 - 有什么想法吗?
小智 19
你可以使用这样的东西:
#!/bin/sh
# $0 is the script name, $1 id the first ARG, $2 is second...
NAME="$1"
mxmlc $NAME.as
flashplayerdebugger $NAME.swf
Run Code Online (Sandbox Code Playgroud)
小智 5
我还建议您使用变量名分隔符。所以代码看起来像:
#!/bin/sh
# $0 is the script name, $1 id the first ARG, $2 is second...
NAME="$1"
mxmlc ${NAME}.as
flashplayerdebugger ${NAME}.sw
Run Code Online (Sandbox Code Playgroud)
这允许在任何上下文中使用变量,甚至在其他文本中。例如:
NewName="myFileIs${NAME}and that is all"
Run Code Online (Sandbox Code Playgroud)
这将扩展变量 NAME,它的前面是“myFileIs”,后面是“and that's 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"
玩得开心!