Bagaimana cara mengatur jalur untuk MinTTY di bawah windows / cygwin dengan benar?


0

Saya membuat pintasan windows dengan target berikut:

D:\APPS\cygwin64\bin\mintty.exe /bin/env PATH=/local/bin:/usr/local/bin:$PATH /bin/bash --login -i

Saya mengharapkannya menambahkan jalur dengan nilai yang diberikan, tetapi tidak:

$ echo $PATH
/usr/local/bin:/usr/bin:/local/bin:/usr/local/bin:$PATH:/usr/lib/lapack

yaitu $PATHteks masuk ke konten tanpa ekspansi.

Cara Mengatasi?

Jawaban:


0

Yah saya melihat ini datang agak terlambat, tetapi mudah-mudahan ini dapat membantu Anda atau orang lain yang memiliki masalah serupa.

Karena Anda menjalankan pintasan Windows, alih-alih menggunakan sintaks untuk ekspansi variabel lingkungan cygwin / * nix ( $VAR_NAME) Anda mungkin hanya perlu menggunakan sintaks untuk ekspansi Windows / CMD.exe ( %VAR_NAME%). Juga, saya menghubungkan dua Wikibooks di bawah ini yang harus mencakup hampir semua hal yang perlu Anda lakukan dengan file batch untuk referensi di masa mendatang.

Yang mengatakan, saya akan mengharapkan sintaks Anda juga bekerja, dan saya membayangkan ada beberapa cara untuk melakukan ekspansi di "sisi lain", begitu-untuk-berbicara. Jika saya dapat menemukan cara ketika saya mengerjakan skrip peluncuran terminal saya, saya akan memperbarui jawaban ini.

Referensi:

  1. Pemrograman CMD memiliki sebagian besar sintaksis dasar dan perintah-perintah penting
  2. Windows Batch Scripting referensi yang cukup komprehensif untuk semuanya

Catatan / Peringatan Caveat

cmdshell scripting menyisakan banyak hal yang diinginkan, dan saya pikir Anda dapat dengan mudah mencari sesuatu yang memberi Anda sedikit rincian. Saya hanya ingin menyebutkannya, dan menyebutkan bahwa tidak ada yang menghentikan Anda untuk menggunakan sesuatu seperti 'MinGW-x64' (Saya sarankan untuk meneliti perbedaan antara 'MinGW-x64' dan yang asli jika Anda ragu-ragu; mereka dikelola oleh terpisah entitas), atau sesuatu seperti Cygwin, yang Anda jelas sudah memiliki pengalaman, yang keduanya memungkinkan Anda untuk melakukan sh/ bashscripting.

MinGW-x64 disederhanakan dan memiliki implementasi POSIX tidak lengkap karena beberapa konsep yang tidak kompatibel dengan Subsistem Windows tanpa beberapa dukungan tambahan (well, Microsoft VC runtime, saya kira; dan saya pikir ada beberapa situasi di mana Anda perlu setidaknya dengan MinGW kalau bukan MinGW-x64 ) tapi saya sebutkan dulu, karena ini adalah solusi 'asli' (yaitu 'cepat').

Cygwin menyediakan 'lapisan kompatibilitas' .dllyang menyediakan lingkungan POSIX yang cukup lengkap, dengan biaya (a) beberapa overhead yang cukup signifikan (setidaknya dalam beberapa kasus) dan (b) memiliki tambahan .dllyang cukup kompleks yang harus disediakan dengan perangkat lunak apa pun Anda membuatnya, dan dengan biaya / manfaat (tergantung pada perspektif Anda) dari cukup terkunci ke dalam GPL jika Anda menggunakannya untuk proyek Anda dan tautan ke lapisan kompatibilitas.

Namun, sebagai alternatif, jawaban ini menyebutkan penawaran lisensi Red Hat Cygwin untuk persyaratan lisensi non-GPL di Cygwin, jika Anda menginginkannya. (Dan, tentu saja dengan asumsi bahwa itu hemat biaya untuk Anda dan proyek Anda.) Namun, untuk skrip shell pribadi atau in-house (yaitu, tidak 'didistribusikan', dan, jadi, tidak tercakup oleh GPL) mungkin sangat baik menjadi pilihan yang baik, dan hampir pasti akan lebih baik daripada menyia-nyiakan dengan kekhasan produk DOS yang masih terjebak mendukung keputusan buruk yang dibuat lebih dari 30 tahun yang lalu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.