Alat pembangun · Docker lari ke Docker compose converter
Petikan, pemisah baris dan $VARS: menghuraikan arahan docker run dengan betul
· Bagaimana ia berfungsi
pekerja pelabuhan baris arahan memetik
Arahan docker run ialah input shell sebelum Docker melihatnya. Siaran ini menerangkan cara petikan dan sambungan baris mengubah token itu dan sebab tiada penukar boleh mengembangkan pembolehubah shell anda.
Penukar menerima $HOME literal — arahan berfungsi dalam terminal anda kerana cangkerang mengembangnya sebelum docker berjalan
Penukar menerima $HOME literal — arahan berfungsi dalam terminal anda kerana cangkerang mengembangnya sebelum docker berjalan. Bukti: $HOME kekal sebagai teks kerana tokenizer tidak melakukan pengembangan. Menghasilkan semula tokenisasi shell dengan literal pakai buang. Gandingkan setiap kejadian sumber dengan token dan sambungan yang disebut; pengembangan rizab dan penghuraian Windows untuk semakan destinasi.
Insiden petikan juga mendedahkan bahawa Sempadan insiden petikan yang berasingan ialah petikan tunggal adalah literal dan proses petikan berganda didokumentasikan. Bukti: petikan tunggal adalah literal dan petikan berganda proses pelepasan aksara yang didokumenkan. Kekangan tokenisasi shell ini adalah titik perhentian. Periksa token dan penerusan yang disebut tanpa gelagat pembuatan, kemudian dokumentasikan semakan hos untuk pengembangan dan penghuraian Windows.
Tokenizer ini menyerupai POSIX peraturan perkataan shell yang dipilih tetapi tidak melakukan pengembangan pembolehubah atau perintah
Shell pertama, Docker kedua — token yang diterima oleh Docker adalah hasil daripada petikan, pemisahan dan pengembangan shell. Bukti: peraturan perkataan seperti POSIX yang dipilih dilaksanakan tanpa menjadi cangkerang; Tokeniser ini menyerupai POSIX peraturan kata kulit yang dipilih tetapi tidak melakukan pengembangan pembolehubah atau perintah. Surih token tokenisasi shell ke dalam token dan kesinambungan yang disebut. Asingkan nilai tersusun daripada medan nilai terakhir; pengembangan dan penghuraian Windows adalah koleksi luar.
Sempadan mekanisme petikan yang berkaitan ialah untuk bahagian petikan ini simpan yang asal untuk arahan bahagian petikan ini dan amaran untuk bahagian petikan ini di sebelah fail calon ini. Bukti: repositori tidak memberikan masa jalan yang lebih luas atau bukti sejarah. Gunakan fakta tokenisasi shell ini untuk meramalkan satu ahli atau skalar dalam token dan sambungan yang disebut. Semak amaran sebelum memutuskan apa-apa tentang pengembangan dan penghuraian Windows.
Kesinambungan garis miring belakang-baris baharu — mengapa garis miring ke belakang yang mengekori ialah ciri cangkang dan ruang sesat selepas ia melanggar arahan
Kesinambungan garis miring belakang-baris baharu — sebab garis miring belakang yang mengekori ialah ciri cangkang dan ruang sesat selepas ia melanggar arahan. Bukti: garis serong ke belakang-garis baharu hilang manakala garis serong terbalik terminal tunggal gagal. Hakim siri tokenisasi shell daripada modelnya. Petikan dalam token dan sambungan yang disebut melindungi jenis tetapi tidak memberikan bukti operasi untuk pengembangan dan penghuraian Windows.
Pemerhatian bersiri petikan kedua ialah Sempadan keluaran petikan yang berasingan ialah sampel wiki boleh dinormalkan dan token literalnya diperiksa. Bukti: sampel wiki boleh dinormalkan dan token literalnya diperiksa. Output tokenisasi shell ini memisahkan tetapan daripada konteks yang tidak tersedia. Pastikan token dan sambungan yang disebut boleh disemak dan semak pengembangan dan penghuraian Windows secara bebas.
Petikan tunggal, petikan berganda dan ruang dalam nilai — -e MSG='hello world' berbanding -e MSG=hello world
Petikan tunggal, petikan berganda dan ruang dalam nilai — -e MSG='hello world' berbanding -e MSG=hello world. Berhenti di pengecualian tokenisasi shell dan bukannya meneka. Sebarang penambahan berhampiran token dan kesinambungan yang disebut memerlukan sebab khusus penempatan yang terikat dengan pengembangan dan penghuraian Windows.
Satu lagi kekangan pengecualian petikan ialah Sempadan pengecualian petikan yang berasingan ialah ariti pilihan Docker mengikut tokenisasi dan peraturan Windows tidak hadir. Bukti: Arity pilihan Docker mengikut tokenisasi dan peraturan Windows tidak hadir. Simpan perintah tokenisasi shell asal di sebelah amaran. Perbandingan menunjukkan kandungan token dan sambungan yang dipetik dan keputusan pengembangan dan penghuraian Windows yang masih manual.
Ungkapan dolar, sintaks subkulit dan tilde kekal literal kerana penukar bukan cangkang
Pembolehubah dan subkulit — $PWD, $(id -u) dan ~ dikembangkan oleh cangkerang anda, jadi penukar melihatnya secara literal. Bukti: pembolehubah dolar dan tilde notasi subkulit ke belakang tidak pernah dinilai; Ungkapan dolar, sintaks subkulit dan tilde kekal literal kerana penukar bukan cangkang. Bina contoh tokenisasi shell daripada nama sintetik. Jadikan setiap item token dan sambungan yang dipetik boleh dikesan tanpa mendedahkan perincian pengembangan pengeluaran dan penghuraian Windows.
Contoh contoh petikan yang sama menunjukkan bahawa untuk bahagian petikan ini simpan yang asal untuk arahan bahagian petikan ini dan amaran untuk bahagian petikan ini di sebelah fail calon ini. Fakta tokenisasi shell berpasangan harus kelihatan dalam token dan kesinambungan yang disebut. Catatkan baris itu dan elakkan andaian tentang pengembangan dan penghuraian Windows.
Contoh yang berjaya: membersihkan arahan yang ditampal wiki — menormalkan kesinambungan dan memetik sebelum penukaran, kemudian menyemak YAML
Contoh yang berjaya: membersihkan arahan yang ditampal wiki — menormalkan kesinambungan dan memetik sebelum penukaran, kemudian menyemak YAML. Terjemahkan akibat tokenisasi shell kepada satu token petikan yang boleh diperhatikan dan perbezaan kesinambungan. Docker memiliki pengembangan kemudian dan keputusan penghuraian Windows.
Pelaksanaan akibat petikan juga menunjukkan Sempadan kesan petikan yang berasingan ialah $HOME kekal sebagai teks kerana tokeniser tidak melakukan pengembangan. Tanggungjawab tokenisasi shell split: penukaran menulis token dan kesinambungan yang disebut, repositori mengalih keluar rahsia dan pengendali mengesahkan pengembangan dan penghuraian Windows.
Petikan shell Windows dan pengembangan POSIX yang lengkap berada di luar penghurai ini
Perkara yang tidak dicakupi ini — ciri penghuraian pilihan docker run sendiri, seperti = berbanding ruang dan perbezaan petikan shell Windows. Bukti: Arity pilihan Docker mengikut tokenisasi dan peraturan Windows tiada; Petikan shell Windows dan pengembangan POSIX yang lengkap berada di luar penghurai ini. Hadkan skop tokenisasi shell kepada token yang dipetik dan cawangan sambungan yang ditunjukkan di sini. Borang jiran dan lalai tidak dapat menjawab soalan pengembangan dan penghuraian Windows.
Satu lagi had skop petikan berikutan daripada menyimpan arahan asal untuk bahagian petikan ini dan amaran di sebelah fail calon ini. Anggap sempadan tokenisasi shell ini sebagai pengecualian. Lebih suka token yang dipetik tepat dan sambungan daripada tekaan tentang pengembangan dan penghuraian Windows.
Bawa pulang: berikan penukar perkara yang Docker akan lihat — dan gantikan pembolehubah shell dengan nilai literal atau Karang ${VAR} interpolasi
Bawa pulang: berikan penukar perkara yang Docker akan lihat — dan gantikan pembolehubah shell dengan nilai literal atau Karang ${VAR} interpolasi. Bukti: input yang boleh dipercayai bermaksud membekalkan perkataan literal yang bertujuan untuk menghurai. Tokenisasi shell audit sebagai pilihan sumber, medan model, token petikan dan baris kesinambungan dan amaran. Alih keluar rahsia sebelum menyemak pengembangan dan penghuraian Windows.
Akhir sekali, sumber ambil balik petikan mengesahkan Sempadan keputusan sebut harga yang berasingan ialah garis serong terbalik-baris baharu hilang manakala garis serong terbalik terminal tunggal gagal. Tutup tokenisasi shell secara sempit: token dan sambungan yang dipetik ialah calon; pengembangan dan penghuraian Windows dan kesetaraan shell bukan jaminan.