ฉันจะรันสคริปต์บรรทัดคำสั่งได้อย่างไร


17

ใน Windows ฉันสามารถสร้าง.batไฟล์ได้ ฉันคลิกสองครั้งและทุกบรรทัดจะถูกตีความราวกับว่าฉันได้ป้อนเข้าไปในคอนโซล

ใน OS X ฉันต้องใช้ไฟล์หรือโปรแกรมใด ถ้าฉันต้องการเขียนไฟล์ด้วย;

 echo hello world

ฉันต้องการดับเบิลคลิกไฟล์นี้และให้มันทำงานในคอนโซล ฉันจะทำสิ่งนี้ได้อย่างไร


ไฟล์จำเป็นต้องทำงานเมื่อดับเบิลคลิกหรือคุณแค่ต้องการเรียกใช้ไฟล์โดยพิมพ์ชื่อไฟล์?
Phil M


ไฟล์ดับเบิลคลิกมากขึ้นอย่างรวดเร็ว :)
โรดริโก

คำตอบ:


24

การรองรับเทอร์มินัลใน OS X เหมือนกับที่ใช้ใน Linux สิ่งที่คุณกำลังมองหาโดยเฉพาะเรียกโดยทั่วไปว่า "Shell Scripting"

เชลล์เริ่มต้นเมื่อคุณเปิดTerminal.app(อยู่ใน/Applications/Utilties) คือเชลล์ bash

OS X มีตัวจัดการเชลล์ในตัวที่สามารถเข้าถึงได้ผ่านตัวค้นหาและแอปพลิเคชันอื่น ๆ ผ่านทาง.commandส่วนขยายแม้ว่าจะไม่ได้ผ่านทาง.shส่วนขยาย อย่างไรก็ตามการตั้งค่าสคริปต์ให้ทำงานผ่าน Finder นั้นยังคงมีความซับซ้อนยิ่งขึ้น

  1. สร้างเชลล์สคริปต์อย่างง่ายเช่นเดียวกับตัวอย่างของคุณฉันได้สร้างแอปพลิเคชัน Hello World:
#!/bin/bash
echo "Hello World"
  1. HelloWorld.commandบันทึกแฟ้มนี้เป็น

  2. ให้สิทธิ์ไฟล์นี้เพื่อดำเนินการ chmod u+x HelloWorld.commandควรทำเช่นนั้น

  3. เปิดไดเรกทอรีที่คุณบันทึกไฟล์นี้ใน Finder จากนั้นดับเบิลคลิกที่HelloWorld.commandไฟล์

นี่จะเป็นการเปิดเทอร์มินัลและเรียกใช้สคริปต์ผลลัพธ์บนคอมพิวเตอร์ของฉันมีดังต่อไปนี้:

$ /Users/jason/Applications/HelloWorld.command; ออกจาก;
สวัสดีโลก
ออกจากระบบ

[กระบวนการเสร็จสมบูรณ์]

ทางเลือกอื่นของการเรียกใช้ไฟล์นี้คือในขณะที่ยังอยู่ใน Terminal ด้วยตัวเองเพียงแค่ออก./HelloWorld.commandสมมติว่าคุณอยู่ในไดเรกทอรีเดียวกับไฟล์

การทำเช่นนั้นจะทำให้ได้ผลลัพธ์ที่ง่ายขึ้นมาก:

แอปพลิเคชัน jason-mac $ ./HelloWorld.com และแอปพลิเคชัน
Hello World
jason-mac $

คุณเพิ่งสร้างและดำเนินการเชลล์สคริปต์ใน OS X!


ข้อเสีย: มันน่าผิดหวังอย่างยิ่งที่ OS X ไม่ได้ทำสิ่งนี้กับไฟล์ ".sh" ไฟล์ ". คำสั่ง" เท่านั้น ใช่เป็นไปได้ที่จะเปลี่ยนแปลงสิ่งนี้ แต่. คำสั่งมีอยู่แล้วดังนั้นนี่คือคำแนะนำที่ฉันแนะนำ
Jason Salaz

คุณต้องการถามคำถามวิธีการฉีด. sh ลงในฐานข้อมูลการเปิดตัวบริการหรือไม่?
bmike

เห็นได้ชัดว่าคุณมีความคิด (ความคิดไม่ได้ใจของฉัน) ดังนั้นคุณยินดีที่จะทำ
Jason Salaz

ฉันได้ความคิดจากคุณ - ไปเลยฉันขอมันทั้งหมดด้วยตัวของมันเอง ...
bmike

ให้ฉัน:chown: u+x: Invalid argument
Rodrigo

4

สิ่งที่เทียบเท่ากับ Console หรือ Command Prompt ใน Windows คือแอพ Terminal ที่อยู่ใน / Applications / Utilities /

เทียบเท่าของ DOS (หรือสิ่งที่พวกเขาเรียกมันว่าวันนี้) คือ "ทุบตี"

ไฟล์แบตช์ (.bat) ที่เทียบเท่าใน Windows คือเชลล์สคริปต์ (.sh)

เพียงทำการค้นหาโดย Google เพื่อค้นหา "bash" "การอ้างอิง" และคุณจะเข้าใจส่วนที่เหลือ ฉันขอแนะนำให้ซื้อ Bash Cookbook (O'Reilly)

โดยเฉพาะนี่คือสิ่งที่คุณจะพิมพ์ลงในหน้าต่างเทอร์มินัลเพื่อรับสคริปต์ "hello world" ของคุณ:

วิธีสร้างไฟล์:

    echo "echo hello world" > file.sh

ในการเปลี่ยนการอนุญาตเพื่อให้ไฟล์ปฏิบัติการได้:

    chmod 755 file.sh

วิธีรันสคริปต์:

    ./file.sh

หากคุณต้องการให้คลิกสองครั้งจาก Finder ให้คลิกขวา (หรือควบคุมคลิก) บนไฟล์และเลือกรับข้อมูลจากนั้นภายใต้เปิดด้วยให้เลือกแอปเทอร์มินัล หรือคุณสามารถใช้ส่วนขยาย. คำสั่งแทนส่วนขยาย. sh


2

คุณอาจต้องการให้ AppleScript ดู หนังสือเล่มนี้โดย Sal Soghoian ได้รับการพิจารณาจากหนังสือ go-to มากมายใน AppleScript

วิธีที่ดีอีกประการหนึ่งสำหรับผู้ใช้โดยอัตโนมัติปพลิเคชันที่ใช้ Mac อัตโนมัติ คุณอาจต้องการลองดูเช่นกัน หวังว่านี่จะช่วยได้

ปรับปรุง

ดูเหมือนว่าคุณกำลังมองหาบางอย่างเช่น Unix shell scripting นี้สอง บทเรียนที่มีดีและดูเหมือนจะครอบคลุมพื้นฐาน


ฉันเห็นสิ่งนี้ แต่ AppleScript ไม่ใช่เทอร์มินัลสคริปต์ ฉันคิดว่าคุณสามารถทำได้: "ไปที่เทอร์มินัลและเขียนคำสั่ง x" ดีไม่ได้เป็นรูปแบบค้างคาว (และเล็ก ๆ น้อย ๆ เรื่องที่ยากมาก)
โรดริโก

ดูเหมือนว่าสคริปต์ Unix shell คือสิ่งที่คุณกำลังมองหา
Christian Correa

0

เชลล์สคริปต์ ฉันไม่คิดว่า Ask Different จะเป็นสถานที่ที่เหมาะสมในการพูดคุยในเชิงลึก แต่มีคำแนะนำโดยละเอียดที่นี่: http://tldp.org/LDP/abs/html/index.html

Mac OS X ได้รับการรับรองจาก UNIX 10.5 บน (ใช่ไหม) ดังนั้นภูมิปัญญานี้ที่นี่ยังสามารถใช้กับ Linux และ OS อื่น ๆ ที่คล้ายคลึงกับ UNIX

(ในวิธีที่ซับซ้อนน้อยกว่า Automator ของ Mac OS X นั้นค่อนข้างทรงพลังเช่นเดียวกับ AppleScript Editor ซึ่งทั้งคู่สามารถเรียกใช้งานเชลล์สคริปต์และคำสั่งอื่น ๆ ที่มีโปรแกรมและรวมไว้ในชุด. app ที่สะดวกสำหรับ Launchpad เพื่อน)


จากการแนะนำของคู่มือที่ฉันเชื่อมโยง: "เชลล์โปรแกรมเรียกว่าสคริปต์เป็นเครื่องมือที่ใช้งานง่ายสำหรับการสร้างแอพพลิเคชั่นโดย" ติดกาวด้วยกัน "การเรียกระบบเครื่องมือยูทิลิตี้และไบนารีที่คอมไพล์ คำสั่งยูทิลิตีและเครื่องมือของ UNIX พร้อมใช้งานสำหรับการเรียกใช้งานโดยสคริปต์เชลล์หากยังไม่เพียงพอคำสั่งเชลล์ภายในเช่นการทดสอบและการสร้างลูปจะช่วยเพิ่มพลังและความยืดหยุ่นให้กับสคริปต์ "
Swizzlr

และโดย "สถานที่ที่เหมาะสม" ฉันคิดว่าการเขียนสคริปต์เชลล์ดีที่สุดใน SuperUser: superuser.com/questions/tagged/shell-script
Swizzlr


-2

สำหรับ mac คือไฟล์. sh หรือที่รู้จักในชื่อ Shell script


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