Ich möchte ein Shell-Skript schreiben, das ein Argument akzeptiert und es dann auf Dateien anwendet.
Insbesondere möchte ich einen Begriff angeben und ihn dann mit mxmlc ("mxmlc term.as") kompilieren lassen und dann term.swf mit flashplayerdebugger ("flashplayerdebugger term.swf") ausführen. Ich bin ziemlich neu im Shell-Scripting - irgendwelche Gedanken?
bash
scripts
command-line
Southpointingchariot
quelle
quelle
$2
ist das erste Argument,$3
das zweite und so weiter.$1
ist für den Namen der Datei reserviert. Was die anderen Sachen betrifft, verstehe ich nicht ganz, was du meinst. Könnten Sie bitte versuchen, es etwas besser zu erklären oder einen Pseudocode zu schreiben?"$1"
ist das erste Argument.Antworten:
Sie könnten so etwas verwenden:
quelle
NAME
Variable ganz und verwenden Sie einfachmxmlc "$1".as
undflashplayerdebugger "$1".swf
. (Zitate können in Ausdrücken enthalten sein.)nxmlc
undflashplayerdebugger
wird mehrere Argumente erhalten , anstatt das ein Argument bestimmt. Die Erweiterung vonNAME
muss in doppelte Anführungszeichen gesetzt werden. Nebenbei bemerkt, verwenden Sie nicht alle Variablennamen in Großbuchstaben. Sie riskieren, spezielle Shell-Variablen oder Umgebungsvariablen zu überschreiben.Ich empfehle auch, das Variablennamen-Trennzeichen zu verwenden. Der Code würde also so aussehen:
Dies ermöglicht die Verwendung der Variablen in jedem Kontext, auch in anderen Texten. Beispielsweise:
Dies würde die Variable NAME erweitern, die vorne von "myFileIs" und hinten von "und das ist alles" flankiert wird. Die Variable würde sich erweitern, einschließlich Leerzeichen, innerhalb der Zeichenfolge. Wenn NAME "hier drinnen" wäre, wäre der neue Name "myFileIsinside hereand das ist alles".
Die Befehlszeile kann bis zu 9 Variablen aufnehmen. Es können Zeichenfolgen in Anführungszeichen gesetzt werden, die Leerzeichen enthalten. Jede Zeichenfolge in Anführungszeichen zählt als Variable. Sowie:
./myProg var1 var 2 var3
So
${1}
ist"var1"
,${2}
ist"var"
,${3}
ist"2"
,${4}
ist"var3"
ABER:
./myProg var1 "var 2" var3
hat
${1}
ist"var1"
,${2}
ist"var 2"
,${3}
ist"var3"
Habe Spaß!
quelle