ฉันจะรันเชลล์สคริปต์ใน Windows ได้อย่างไร [ซ้ำ]


23

ฉันเป็นผู้ใช้ Mac และเป็นมือใหม่สำหรับ Windows ฉันจะรันเชลล์สคริปต์ใน Windows ได้อย่างไร

โดยทั่วไปแล้วฉันจะบันทึกไฟล์ข้อความพร้อมกับนามสกุล.shและเรียกใช้ผ่านเทอร์มินัล แต่ฉันจะทำสิ่งนั้นใน Windows ได้อย่างไร


1
แบตช์ไฟล์ en.wikipedia.org/wiki/Batch_file
Kenaniah

2
คุณสามารถให้ตัวอย่างของสคริปต์ที่คุณคาดว่าจะทำงานบน Windows ได้หรือไม่?

1
คุณต้องการรัน.shเชลล์สคริปต์ที่มีอยู่แล้วหรือไม่? หรือเพียงแค่ต้องการทราบวิธีสคริปต์สำหรับ Windows?
Keltari

คำตอบ:


30

สคริปที่มี.shคำต่อท้ายโดยทั่วไปคือเชลล์สคริปต์ Bourne (หรือ bash, หรือ ksh หรือ zsh - เชลล์ทั้งหมดที่ได้มาจากเชลล์เป้าหมาย) (โปรดทราบว่าในระบบที่คล้าย Unix รวมถึง MacOS .shไม่จำเป็นต้องใช้ส่วนต่อท้าย OS จะดู#!/bin/shบรรทัดที่ด้านบนสุดของสคริปต์เพื่อกำหนดวิธีดำเนินการ)

Windows ไม่ได้จัดเตรียมเชลล์แบบบอร์น

คุณสามารถติดตั้งCygwinซึ่งมีสภาพแวดล้อมคล้าย Unix ใน Windows - แต่ไม่มีสภาพแวดล้อม "ดั้งเดิม" โดยเฉพาะ (ความคิดเห็นบรรณาธิการ: Cygwin นั้นยอดเยี่ยมสำหรับคนอย่างฉันที่ต้องใช้ Windows แต่น่าจะใช้ Unix มากกว่า)

มีระบบย่อยคล้าย Unix อื่น ๆ ที่ทำงานภายใต้ Windows รวมถึงMinGWและWindows Services สำหรับแพ็คเกจUNIX ที่จัดทำโดย Microsoft

หรือแทนที่จะพยายามเขียนและรันเชลล์สคริปต์แบบ Unix คุณสามารถเขียนไฟล์แบตช์ของ Windows โดยทั่วไปมี.batหรือ.cmdต่อท้าย พวกเขาใช้คำสั่งและไวยากรณ์เดียวกันกับพรอมต์คำสั่งแบบโต้ตอบของ Windows

นอกจากนี้ยังมีค่อนข้างใหม่Windows PowerShell ; ฉันไม่คุ้นเคยกับตัวเอง แต่ฉันได้ยินสิ่งดีๆเกี่ยวกับมัน


3
ฉันจะสำรองข้อเสนอแนะ powershell ในฐานะผู้ใช้ powershell ที่ได้เขียนสคริปต์หลายอย่างสำหรับการทำทุกอย่างตั้งแต่รีบูตเครื่องคอมพิวเตอร์ระยะไกลหรือปิดบริการบนคอมพิวเตอร์ระยะไกลเพื่อดึงรายชื่อคอมพิวเตอร์จากไดเรกทอรีที่ใช้งานอักษรและทดสอบแต่ละ บริการบางอย่างและการย้ายไฟล์ที่ซับซ้อนขนาดใหญ่ แท้จริงมันสามารถทำมันทั้งหมดใน windows
Paperlantern

1
เป็นที่น่าสังเกตว่าแม้ว่า cygwin อาจอนุญาตให้สคริปต์ทำงานได้ แต่อาจทำงานได้ไม่ถูกต้องหากมีข้อสมมติฐานบางอย่างเกี่ยวกับระบบพื้นฐาน (เช่นไบนารีที่มีอยู่โครงร่างของระบบไฟล์ ฯลฯ )
Daenyth


2

บน Win นามสกุลทั่วไปหรือ.bat .cmdแหล่งที่ดีสำหรับคำสั่งที่ใช้ในเชลล์ Windows คือss64 - สำหรับ CMD และ PowerShell

Cygwinไม่ใช่ "ต้อง" มันเป็นเพียงการมอบสไตล์ของ Linux ให้คุณ - ใช้ BASH กับ Win


2

แล้ว UWIN ล่ะ?

UWINเป็นแพคเกจซอฟต์แวร์คอมพิวเตอร์ที่สร้างโดย David Korn ซึ่งอนุญาตให้โปรแกรมที่เขียนขึ้นสำหรับระบบปฏิบัติการ Unix สามารถสร้างและเรียกใช้บน Microsoft Windows ด้วยการเปลี่ยนแปลงเล็กน้อย การพัฒนาซอฟต์แวร์บางส่วนได้รับการว่าจ้างจาก Wipro ประเทศอินเดีย

ตรวจสอบUWINนี้- Unix สำหรับ Windows

คุณสมบัติเด่นของ UWIN

  1. เข้าถึงเครื่องมือบรรทัดคำสั่งเกือบทั้งหมดจาก Unix บน windows เครื่องมือบรรทัดคำสั่ง 245 รายการต้องตรงกันทุกประการ
  2. มาพร้อมกับคอมไพเลอร์ Unix ดั้งเดิม 'cc' รวมถึงเครื่องมือมากมายเช่น 'make' และไลบรารี่ที่จำเป็นซึ่งอนุญาตให้แอปพลิเคชั่น Unix สามารถสร้างและรันบนเครื่อง Windows ที่มีการเปลี่ยนแปลงน้อยมากหรือไม่มีเลยในซอร์สโค้ด
  3. ตัวเลือกในการใช้คอมไพเลอร์อื่น ๆ เช่น Visual C ++ หรือ Mingw เพื่อคอมไพล์โปรแกรม แพคเกจ Perl เต็มเปี่ยม
  4. ห้องสมุด X windows สำหรับผู้ที่ต้องการพัฒนาแอพพลิเคชั่น X บน windows แม้ว่าจะเรียกใช้แอปพลิเคชันเหล่านั้นใน Windows คุณต้องมีเซิร์ฟเวอร์ X ซึ่งไม่ได้รวมอยู่กับ UWIN
  5. UWIN มาพร้อมกับแอปเพล็ตแผงควบคุม (เข้าถึงได้ผ่าน 'เริ่มต้น> การตั้งค่า> แผงควบคุม -> UWIN') ซึ่งสามารถใช้เพื่อกำหนดค่าพารามิเตอร์ของระบบ UWIN บางส่วน

การใช้ประโยชน์ของ UWIN

  • เรียกใช้แอปพลิเคชั่น Unix ใน Windows ด้วยความเร็วสูงสุด
  • ใช้เครื่องมือบรรทัดคำสั่ง Unix เต็มพลังบน Windows
  • เปลือก korn ที่มาพร้อมกับ UWIN ทำให้ผู้ใช้ Unix รู้สึกเหมือนอยู่บ้านในสภาพแวดล้อม Windows
  • พัฒนาและเรียกใช้แอปพลิเคชั่น UNIX บน Windows
  • พัฒนาแอปพลิเคชั่น X บนแพลตฟอร์ม Windows

ข้อเสียของ UWIN

  • UWIN ไม่ได้มาพร้อมกับเซิร์ฟเวอร์ X ดังนั้นผู้ใช้จะไม่สามารถเรียกใช้แอปพลิเคชัน X บน windows ได้ แม้ว่าจะมีเซิร์ฟเวอร์ X เชิงพาณิชย์ของบุคคลที่สามซึ่งสามารถเติมเต็มช่องว่างนี้ได้
  • UWIN ไม่ได้เปิดตัวภายใต้ GPL แต่สามารถดาวน์โหลดและใช้งานได้ฟรีเพื่อวัตถุประสงค์ทางการศึกษาและไม่ใช่เชิงพาณิชย์

ซอฟต์แวร์นั้นใช้สอน Linux Command เมื่อฉันอยู่ในมหาวิทยาลัย .. ดีมาก ..


Ref: WikiPedia

Cygwinเป็นสภาพแวดล้อมแบบ Unix และอินเตอร์เฟสบรรทัดคำสั่งสำหรับ Microsoft Windows

ข้อดีคือ Cygwin ให้บริการการรวมแอพพลิเคชั่นที่ทำงานบน Windows ข้อมูลและทรัพยากรระบบอื่น ๆ เข้ากับแอพพลิเคชั่นเครื่องมือซอฟต์แวร์และข้อมูลของสภาพแวดล้อมคล้าย Unix

Interix
Interix เป็นองค์ประกอบของบริการสำหรับ Unix (SFU) รีลีส 3.0 และ 3.5 (อันสุดท้ายนี้มีการเผยแพร่อย่างอิสระ )

รุ่นล่าสุดของ Interix, 5.2 และ 6.0 เป็นส่วนประกอบของ Windows Server 2003 R2, Windows Vista Enterprise และ Ultimate Editions และ Windows Server 2008 ภายใต้ชื่อ SUA (ระบบย่อยสำหรับแอพพลิเคชั่นที่ใช้ Unix) เวอร์ชัน 6.1 รวมอยู่ใน Windows 7 ( Enterprise และ Ultimate) และ Windows Server 2008 R2 (ทุกรุ่น)


2

ไม่มีทางที่จะทำเช่นนี้กับอีกประการหนึ่งคือการปรับปรุงการครบรอบปีที่ 10 ขณะนี้มี Bash (Ubuntu) shell พร้อมใช้งานใน Windows

ในการใช้งานคุณจะต้องติดตั้งคุณสมบัติเนื่องจากไม่ได้เปิดใช้งานตามค่าเริ่มต้น

  1. ไปที่Control Panel-> ->ProgramsTurn Windows Features On and Off

  2. Windows Subsystem for Linux (Beta)เลือกช่องทำเครื่องหมาย สิ่งนี้จะติดตั้งฟีเจอร์และแจ้งให้รีบูต

จากนั้นคุณสามารถเปิดพร้อมรับคำสั่งผ่านทางวิ่ง -> cmdจากนั้นพิมพ์bashหรือวิ่ง bash.exe->

สิ่งนี้จะทำให้คุณมี bash shell ที่ไม่มีเครื่องเสมือนหรือ Cygwin หรือ virtualbox


1

ถึงแม้ว่าคำตอบที่มีอยู่ที่นี่มีความถูกต้องในเวลาที่ใช้ Windows 10 ไม่ตอนนี้เลือกที่จะรวมถึงรุ่นล่าสุดของอูบุนตูทำงานเปลือกทุบตีเต็ม

เมื่อติดตั้งแล้วคุณสามารถเปิดพรอมต์ bash (เหมือนกับเทอร์มินัลใน OS X / macOS) และเรียกใช้สคริปต์ตามปกติเช่น:

chmod +x myscript.sh
./myscript.sh

หากคุณต้องการเรียกใช้สคริปต์โดยตรงจาก Windows คุณสามารถสร้างทางลัดในไดเรกทอรีเดียวกันและตั้งค่า 'เป้าหมาย' เป็นดังนี้:

C:\Windows\System32\bash.exe -c "./myscript.sh"

หากเส้นทางของสคริปต์ของคุณสัมพันธ์กับตำแหน่งของทางลัด (เช่นตัวอย่างด้านบน) ให้แน่ใจว่าฟิลด์ 'เริ่มต้นใน' ว่างเปล่าเช่นกัน


0

คุณจะต้อง CygWin แล้วฉันเชื่อว่าคุณจะสามารถทำงานได้:

sh yourscript.sh

0

คำตอบที่เหมาะสมได้รับในความคิดเห็นโดย Kenaniah คุณต้องใช้ไฟล์ชุด คุณต้องตั้งชื่อไฟล์รหัสเชลล์ของคุณเป็น * .bat จากนั้นคุณสามารถเรียกใช้ได้โดยคลิกที่ไฟล์หรือเพียงพิมพ์ชื่อในเทอร์มินัล โปรดสังเกตว่าเทอร์มินัล windows ไม่ทำงานเหมือนกับเทอร์มินัล unix คุณจะพบกับความช่วยเหลือและแบบฝึกหัดมากมายสำหรับคำสั่งและไวยากรณ์ทั่วทั้งเว็บ นอกจากนี้ยังมีความเป็นไปได้ที่จะใช้Windows PowerShellซึ่งดูเหมือนว่าจะเหมือนยูนิกซ์มากกว่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.