Jawaban:
Anda menggunakan Windows CMD.EXE (dari pesan kesalahan). Ini menggunakan sintaks yang berbeda untuk menjalankan perintah. Anda harus menggunakan sh name.sh
, dengan asumsi bahwa Anda telah menginstal Cygwin atau yang serupa.
Untuk memperjelas, Windows tidak memiliki utilitas bawaan untuk mendukung file .sh. Untuk menjalankannya, Anda harus menginstal alat pihak ketiga seperti Cygwin .
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 .
Atau Anda bisa beralih ke sisi gelap dan menginstal Linux. Dari prompt:
sh runide.sh
atau
sudo sh runide.sh
Program Anda akan berjalan dan Anda akan memiliki sistem yang lebih baik juga.
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 Anda
Edit 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'
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.
Seseorang mengatakan sesuatu tentang MS-DOS menggunakan /
untuk perintah dan \
untuk jalur. Ini sedikit menyesatkan. Lihatlah contoh saya:
C:\myfoo\foo\>cd../..
C:\myfoo\foo\>cd..\..
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
dan eval
, exec
lakukan dengan -Djava.something
ketika dipanggil.
Gunakan Github untuk Windows. Ini berisi semua executable lingkungan Unix.
Saya menemukan solusi yang berbeda dan mudah, yang disebut UnixUtil .
Unduh dan unzip ke drive C :. Tetapkan variabel lingkungan path
untuk disertakan C:\UnixUtils\usr\local\wbin
.
Ini penting. JANGAN setel path keC:\UnixUtils\bin
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.
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.
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 menjalankan sh
)?
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
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 ).Untuk menjalankan skrip shell dari windows. Pertama gunakan perintah: dos2unix maka Anda dapat menggunakan perintah normal Anda: sh runide.sh
Ini akan berhasil.
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:
chmod +x myscript.sh
./myscript.sh
Jika Anda ingin menjalankan skrip langsung dari Windows, Anda dapat membuat pintasan di direktori yang sama dan mengatur 'Target' ke sesuatu seperti:
C:\Windows\System32\bash.exe -c "./myscript.sh"
Jika jalur skrip Anda relatif ke lokasi pintasan (seperti contoh di atas) pastikan bidang 'Mulai di' juga kosong.