Saya ingin menulis skrip shell yang mengambil argumen, dan kemudian menerapkannya pada file.
Secara khusus, saya ingin memberikan sebuah term, dan kemudian mengkompilasinya term.as dengan mxmlc ("mxmlc term.as"), kemudian jalankan term.swf dengan flashplayerdebugger ("flashplayerdebugger term.swf"). Saya cukup baru di shell scripting - ada pemikiran?
bash
scripts
command-line
southpointingchariot
sumber
sumber
$2
adalah argumen pertama,$3
kedua, dan seterusnya.$1
dicadangkan untuk nama file. Adapun hal-hal lain, saya tidak mengerti apa yang Anda maksud. Bisakah Anda mencoba menjelaskannya sedikit lebih baik atau menulis beberapa kode kode?"$1"
adalah argumen pertama.Jawaban:
Anda dapat menggunakan sesuatu seperti ini:
sumber
NAME
variabel sama sekali dan hanya menggunakanmxmlc "$1".as
danflashplayerdebugger "$1".swf
. (Kutipan bisa di dalam ekspresi.)nxmlc
danflashplayerdebugger
akan mendapatkan beberapa argumen, bukan satu argumen yang dimaksudkan. PerluasanNAME
perlu dikutip ganda. Di samping catatan, jangan gunakan semua nama variabel huruf besar; Anda berisiko menimpa variabel shell khusus atau variabel lingkungan.Saya juga menyarankan Anda menggunakan pembatas nama variabel. Jadi kodenya akan terlihat seperti:
Ini memungkinkan penggunaan variabel dalam konteks apa pun, bahkan di dalam teks lain. Sebagai contoh:
Ini akan memperluas variabel NAME yang akan diapit di depan oleh "myFileIs" dan di bagian belakang dengan "dan itu saja" Variabel akan diperluas, spasi termasuk, di dalam string. jika NAME "di dalam sini" NewName akan menjadi "myFileIsinside hereand itu saja".
Baris perintah dapat memakan waktu hingga 9 variabel. Mereka dapat dikutip string yang berisi kosong, setiap string yang dikutip dihitung sebagai variabel. Seperti:
./myProg var1 var 2 var3
Begitu
${1}
juga"var1"
,${2}
adalah"var"
,${3}
adalah"2"
,${4}
adalah"var3"
TAPI:
./myProg var1 "var 2" var3
memiliki
${1}
adalah"var1"
,${2}
adalah"var 2"
,${3}
adalah"var3"
Selamat bersenang-senang!
sumber