Ketika saya mencoba mengeksekusi file (name.sh) di baris perintah dengan perintah ./name.sh, saya mendapatkan kesalahan bahwa:
"." tidak dikenali sebagai perintah internal atau eksternal, file yang dapat dioperasikan atau batch
tolong bantu saya menjalankan file .sh
windows
shell-script
Broam
sumber
sumber
Anda mencoba menjalankan perintah Linux di Prompt Perintah Windows.
Di Linux, garis miring adalah pemisah jalur. Pada Windows backslash adalah pemisah jalur dan garis miring biasanya menunjukkan argumen.
Karenanya, Windows berpikir Anda mencoba menjalankan perintah yang disebut "." dan menguraikannya argumen "/name.sh". Konvensi yang benar adalah ". \ Name.sh". Selain itu Windows akan secara otomatis mencari direktori Anda saat ini untuk perintah Anda sehingga Anda cukup mengetik "name.sh".
Masalah berikutnya yang akan Anda hadapi adalah bahwa Windows tidak tahu apa itu sh script, sekali lagi ini adalah masalah Linux. Anda dapat menyelesaikan ini dengan menginstal Cygwin jika Anda benar-benar ingin atau perlu menjalankan skrip sh.
Namun, menilai dari salah satu komentar Anda sebelumnya, Anda bisa mengganti nama script menjadi name.bat dan menghapus baris "#! / Bin / sh". Sekarang Anda memiliki file Batch yang harus dipahami Windows. Anda dapat membaca lebih lanjut tentang file batch di sini .
sumber
Atau Anda bisa beralih ke sisi gelap dan menginstal Linux. Dari prompt:
atau
Program Anda akan berjalan dan Anda akan memiliki sistem yang lebih baik juga.
sumber
Solusi terbaik menurut saya:
Unduh dan instal .git untuk Windows
Klik kanan desktop dan katakan "git bash di sini"
Jalankan skrip Anda seperti di unix
Selesai!
Perhatian: Banyak perintah tidak akan berfungsi di windows! Tapi tetap saja, banyak hal dasar akan berhasil.
Jika Anda membutuhkan skrip itu secara teratur, Anda mungkin ingin membuat pintasan (misalnya pada desktop Anda):
Buat Pintasan untuk
mintty.exe
di desktop AndaEdit properti pintasan dan ubah target (tetap jalan):
C:\Program Files\Git\usr\bin\mintty.exe" -h always /bin/bash -l -e 'D:\folder\script.sh'
sumber
Anda mencoba menjalankan mobil Anda dengan jus jeruk dan bukannya bensin. Windows berbagi perintah serupa yang disimpan dalam file .bat atau .cmd dengan skrip shell Unix / Linux / zOS Unix / * ix karena dua keluarga sistem operasi ini memiliki nenek moyang yang sama dengan mesin DEC PDP-x DEC.
Jika Anda ingin kepuasan instan, Anda harus menginstal lingkungan yang menyediakan program "sh.exe" atau "csh.exe" atau program "bash.exe" (tsh.exe siapa?)
Atau, jika Anda tahu perintah skrip Unix, sangat baik, dan Anda tahu perintah file Windows .cmd dan .bat, sangat baik, Anda dapat menerjemahkan file .sh menjadi file .bat atau .cmd. Meski begitu, Anda akan sering menemukan lebih banyak program bergaya Unix yang tidak memiliki padanan di Windows - grep, sed, vi, emacs, dll. Dengan demikian, panggilan untuk menginstal CygWin (tidak ada minimalis) - hanya untuk mendapatkan shell dan Unix alat. Letakkan di flash-drive, untuk acara-acara khusus ini.
sumber
Seseorang mengatakan sesuatu tentang MS-DOS menggunakan
/
untuk perintah dan\
untuk jalur. Ini sedikit menyesatkan. Lihatlah contoh saya:Tidak ada perbedaan efek. Ya, itu tidak benar untuk semua operasi - jawaban yang sebenarnya adalah Tidak , atau tanpa Cygwin atau SSHD Anda tidak bisa.
Saya hanya tahu karena saya bodoh menghabiskan setengah hari mencoba mencari tahu apa
if then fi
daneval
,exec
lakukan dengan-Djava.something
ketika dipanggil.sumber
Gunakan Github untuk Windows. Ini berisi semua executable lingkungan Unix.
https://github-windows.s3.amazonaws.com/GitHubSetup.exe
sumber
Saya menemukan solusi yang berbeda dan mudah, yang disebut UnixUtil .
Unduh dan unzip ke drive C :. Tetapkan variabel lingkungan
path
untuk disertakanC:\UnixUtils\usr\local\wbin
.Ini penting. JANGAN setel path ke
C:\UnixUtils\bin
sumber
Untuk kelengkapan saya ingin menyebutkan fitur "Windows Subsystem for Linux" baru untuk Windows 10. Detailnya dijelaskan dalam http://www.howtogeek.com/249966/how-to-install-and-use-the-linux- bash-shell-on-windows-10 /
Perhatikan, bahwa itu memerlukan aktivasi "Mode Pengembang" dan mengaktifkan opsi "Subsistem Windows untuk Linux (Beta)".
Bagi saya sendiri saya menemukan bahwa instalasi Git untuk Windows (yang saya gunakan tetap) sudah cukup.
sumber
Ini adalah utas lama tetapi bagi mereka yang menggunakan Windows 10. Buka saja fitur windows dari panel kontrol 'Nyalakan atau Matikan Fitur Windows'
Pilih fitur 'Subsistem Windows untuk Linux'. Setelah menginstal, Anda memiliki 'Bash' dan Anda bahkan dapat mengkonfigurasi server Linux asli dalam bash. Dan tentu saja, perintah sh, dalam bash, berfungsi juga.
sumber
Mungkin saja masalahnya ada di dalam file
name.sh
- Anda mencoba menggunakan.
perintah tetapi mencoba menjalankan sejenis shell (mis.csh
, Saya pikir) di mana itu bukan perintah yang valid.Jadi: apakah
name.sh
mulai dengan yang benar#!/bin/sh
(jika Anda benar-benar mencoba menjalankansh
)?sumber
ok, ada BANYAK yang salah dengan itu - jatuhkan #! / bin / sh, dan ubah extention menjadi bat, dan itu mungkin bekerja dengan beberapa perbaikan lagi. Kemudian Anda bisa memanggilnya dengan nama file juga.
Sintaksis skrip shell unix, dan file batch windows tidak terlalu mirip. cygwin, atau banyak bermain-main dengan unxutils mungkin membuat sesuatu yang akan bekerja di keduanya, tetapi kecuali jika Anda benar-benar yakin lingkungan selalu sama, itu tidak sebanding dengan sakit kepala
sumber
drop the #!/bin/sh, and change the extention to bat, and it might work with a few more fixes.
Apa?! Saya menduga Anda belum pernah mencoba ini ... Di Windows, bahkan kemampuan bash yang paling sederhana tidak didukung atau memerlukan sintaks yang panjang.Jika Anda memiliki kotak Linux di rumah Anda (atau kantor) dan terhubung ke jaringan yang sama, dan jaringan ini aman, ini mungkin melakukan trik:
mount //WinMachine/Share LinuxFolder
(IIRC, dan membutuhkan Samba ).sumber
Untuk menjalankan skrip shell dari windows. Pertama gunakan perintah: dos2unix maka Anda dapat menggunakan perintah normal Anda: sh runide.sh
Ini akan berhasil.
sumber
Meskipun jawaban yang ada di sini adalah benar pada saat itu, Windows 10 tidak sekarang opsional termasuk versi modifikasi dari Ubuntu menjalankan shell bash penuh .
Setelah dibuat dapat dieksekusi, skrip dapat dijalankan dengan cara biasa dari dalam bash, misalnya:
Jika Anda ingin menjalankan skrip langsung dari Windows, Anda dapat membuat pintasan di direktori yang sama dan mengatur 'Target' ke sesuatu seperti:
Jika jalur skrip Anda relatif ke lokasi pintasan (seperti contoh di atas) pastikan bidang 'Mulai di' juga kosong.
sumber