วิธีเรียกใช้คำสั่งเทอร์มินัลจากสคริปต์บน macOS

ในการเรียกใช้คำสั่ง Terminal จากสคริปต์บน macOS ให้ใส่คำสั่งเหล่านั้นลงในสคริปต์เชลล์แบบข้อความธรรมดา ทำให้สคริปต์นั้นสามารถเรียกใช้งานได้ จากนั้นเรียกใช้จาก Finder หรือ Terminal หรือใช้.commandส่วนขยายเพื่อเปิดโดยการดับเบิ้ลคลิก สคริปต์จะไม่ข้ามการควบคุมความเป็นส่วนตัวของ macOS หรือให้สิทธิ์ผู้ดูแลระบบ

หน้าต่างแก้ไขข้อความธรรมดาที่แสดง shebang ของ zsh และคำสั่ง echo ในไฟล์ MyScript.command
สคริปต์เชลล์ขนาดสั้นเริ่มต้นด้วย shebang ที่เลือกใช้ zsh

1. เขียนคำสั่งลงในไฟล์ข้อความธรรมดา

สคริปต์เชลล์คือไฟล์ข้อความที่มีคำสั่งต่างๆ เริ่มต้นด้วยshebangบรรทัดแรกที่บอก macOS ว่าควรใช้เชลล์ใดในการตีความไฟล์ ปัจจุบันเชลล์เริ่มต้นสำหรับหน้าต่าง Terminal ใหม่คือ zsh แต่ผู้ดูแลระบบสามารถตั้งค่าเชลล์เริ่มต้นอื่นได้ ตามที่ Apple อธิบายไว้ในคู่มือ Terminalตัวอย่างนี้ใช้ zsh อย่างชัดเจน:

#!/bin/zsh
# Print a message when the script runs
echo "Script is running"

ใส่คำสั่งไว้ในบรรทัดแยกกันใต้ shebang shebang จะเลือกตัวแปลภาษา ดังนั้นจึงต้องใช้ไวยากรณ์ที่ตัวแปลภาษานั้นรองรับ ตัวอย่างเช่น สคริปต์ Bash สามารถเริ่มต้นด้วย ` <script>` คู่มือสคริปต์เชลล์#!/bin/bashของ Apple อธิบายพื้นฐานไว้

คุณสามารถใช้ TextEdit ได้ แต่ต้องแน่ใจว่าไฟล์เป็นข้อความธรรมดา: เอกสาร TextEdit ใหม่บางฉบับอาจเป็นข้อความแบบ Rich Text เลือกFormat > Make Plain Textหรือตั้งค่ารูปแบบเอกสารใหม่ของ TextEdit เป็น Plain Text ในการตั้งค่า การจัดรูปแบบ Rich Text ไม่ใช่ Shell Code Apple ได้อธิบายตัวเลือกเหล่านี้ไว้ในคู่มือ TextEditนอกจากนี้ โปรแกรมแก้ไขโค้ดหรือโปรแกรมแก้ไขบรรทัดคำสั่งก็nanoใช้งานได้เช่นกัน

หน้าต่างบันทึกไฟล์บน macOS แสดงไฟล์ MyScript.command ที่เลือกไว้เป็นไฟล์ข้อความธรรมดาบนเดสก์ท็อป
บันทึกสคริปต์โดยใช้ส่วนขยาย .command ในตำแหน่งที่คุณสามารถค้นหาได้

2. บันทึกโดยใช้.commandส่วนขยาย

บันทึกไฟล์ข้อความธรรมดาด้วยชื่อที่สื่อความหมาย เช่นMyScript.command`.script.txt` นามสกุลไฟล์ `.script.txt` จะช่วยให้ Finder เปิดสคริปต์ใน Terminal เมื่อคุณดับเบิ้ลคลิก เอกสารสำหรับนักพัฒนาของ Apple ที่เก็บไว้ในคลังข้อมูลอธิบายขั้นตอนการทำงานแบบดับเบิ้ลคลิกสำหรับสคริปต์เชลล์ ตรวจสอบชื่อไฟล์สุดท้ายใน Finder: ถ้าลงท้ายด้วย `.script.txt` .command.txtให้เปลี่ยนชื่อไฟล์เพื่อให้เหลือเพียงนามสกุล `.script.txt` เท่านั้น.commandเก็บตัวอย่างไว้ในตำแหน่งที่เหมาะสม เช่น เดสก์ท็อป ขณะที่คุณกำลังตั้งค่า

หาก macOS ถามว่าต้องการใช้ส่วนขยายใด ให้เลือกส่วนขยายเดิม.commandและตรวจสอบให้แน่ใจว่า Finder ยังไม่ได้เพิ่มส่วนขยาย.txtดังกล่าว

3. ทำให้สคริปต์สามารถเรียกใช้งานได้

เปิดเทอร์มินัลและให้สิทธิ์บัญชีของคุณในการเรียกใช้ไฟล์ สำหรับตัวอย่างที่บันทึกไว้บนเดสก์ท็อป ให้ป้อน:

chmod u+x "$HOME/Desktop/MyScript.command"

กดปุ่ม Enter u+xเพื่อเพิ่มสิทธิ์ในการเรียกใช้งานให้กับเจ้าของไฟล์ เครื่องหมายอัญประกาศจะป้องกันเส้นทางที่มีช่องว่าง เปลี่ยนเส้นทางตัวอย่างหากจำเป็น ลากไฟล์ลงในเทอร์มินัล หรือใช้เมนู Option-click ของ Finder เพื่อคัดลอกเส้นทางของไฟล์ Apple แสดงวิธีการเดียวกันในคำแนะนำเกี่ยวกับไฟล์ที่สามารถเรียกใช้งานได้

หน้าต่างเทอร์มินัลแสดงคำสั่ง chmod u+x ที่ใช้บังคับกับไฟล์ MyScript.command บนเดสก์ท็อป
คำสั่ง chmod จะเพิ่มสิทธิ์ในการเรียกใช้งานให้กับเจ้าของไฟล์

4. รันสคริปต์

ดับเบิ้ลคลิกMyScript.commandใน Finder เพื่อเรียกใช้ใน Terminal ผลลัพธ์และข้อผิดพลาดจะปรากฏที่นั่น หรือป้อนพาธแบบเต็ม:

"$HOME/Desktop/MyScript.command"

หรือเปลี่ยนไปที่โฟลเดอร์ก่อน แล้วจึงใส่เครื่องหมายโคลอน./(:) นำหน้าชื่อไฟล์

cd "$HOME/Desktop"
./MyScript.command

คำสั่ง นี้./บอกให้เชลล์เรียกใช้ไฟล์ในโฟลเดอร์ปัจจุบันคู่มือคำสั่งเทอร์มินัล ของ Apple อธิบายวิธีการเรียกใช้ไฟล์ปฏิบัติการโดยใช้พาธของไฟล์

หน้าต่างเทอร์มินัลกำลังรันคำสั่ง MyScript.command และแสดงข้อความว่า "สคริปต์กำลังทำงาน"
เรียกใช้ไฟล์โดยระบุพาthของไฟล์ และตรวจสอบผลลัพธ์ใน Terminal

แก้ไขปัญหาข้อผิดพลาดทั่วไป

  • “ไม่ได้รับอนุญาต”:ตรวจสอบให้แน่ใจว่าคุณได้เรียกchmod u+xใช้คำสั่งกับไฟล์ที่ถูกต้อง หากจำเป็น ให้ลองเรียกใช้คำสั่งซ้ำอีกครั้งโดยใช้พาธที่ถูกต้องของไฟล์ การทำให้ไฟล์สามารถเรียกใช้งานได้ไม่ได้หมายความว่าทุกคำสั่งภายในไฟล์นั้นจะได้รับอนุญาต
  • “ไม่พบไฟล์หรือไดเร็กทอรีดังกล่าว”:โปรดตรวจสอบตำแหน่งที่ตั้งและการสะกด รวมถึงนามสกุลไฟล์ด้วย ไฟล์ที่บันทึกโดยไม่ได้ตั้งใจMyScript.command.txtจะไม่ตรงกับคำสั่งข้างต้น การลากไฟล์เข้าไปในเทอร์มินัลอาจช่วยแทรกพาธของไฟล์ได้
  • คำสั่งทำงานได้เมื่อพิมพ์ แต่ไม่ทำงานเมื่อเขียนในสคริปต์:สคริปต์อาจใช้เชลล์ที่แตกต่างกัน หรืออาศัยนามแฝง ตัวแปรสภาพแวดล้อม หรือไดเร็กทอรีการทำงานจากเซสชันเทอร์มินัลแบบโต้ตอบของคุณ ใช้ shebang ที่ถูกต้อง หลีกเลี่ยงการใช้นามแฝง และระบุเส้นทางไฟล์อย่างชัดเจน หากคำสั่งต้องการโฟลเดอร์เฉพาะ ให้เพิ่มcdบรรทัดที่เหมาะสมไว้ใกล้กับส่วนต้นของสคริปต์

ทำความเข้าใจเรื่องสิทธิ์การเข้าถึงก่อนแชร์

บิตการเรียกใช้งานนั้นแยกต่างหากจากสิทธิ์ความเป็นส่วนตัว โดยปกติสคริปต์จะทำงานโดยใช้บัญชีของคุณ ใช้sudoเฉพาะกับคำสั่งที่ต้องการสิทธิ์ผู้ดูแลระบบเท่านั้น

ระบบปฏิบัติการ macOS อาจขอสิทธิ์เข้าถึงโฟลเดอร์ที่ได้รับการป้องกันหรือแอปพลิเคชันอื่นๆ โปรดตรวจสอบคำขอแต่ละรายการและอนุญาตเฉพาะสิ่งที่จำเป็นเท่านั้น ตรวจสอบเมนู Apple > การตั้งค่าระบบ > ความเป็นส่วนตัวและความปลอดภัยสำหรับไฟล์และโฟลเดอร์และการตั้งค่าความเป็นส่วนตัวที่เกี่ยวข้องการอนุมัติขึ้นอยู่กับสิทธิ์การเข้าถึงที่ร้องขอและแอปพลิเคชันที่ร้องขอ ไม่ใช่สิทธิ์แบบครอบคลุมต่อคำสั่ง และจะไม่ติดไปกับสคริปต์ที่แชร์

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

ฝากความเห็น

วิธีจับภาพหน้าจอใน Mac: คู่มือฉบับสมบูรณ์

วิธีจับภาพหน้าจอใน Mac: คู่มือฉบับสมบูรณ์

เรียนรู้วิธีการจับภาพหน้าจอใน Mac ด้วยคีย์ลัดสำหรับทั้งหน้าจอ พื้นที่ หรือหน้าต่าง รวมถึงเคล็ดลับเกี่ยวกับการใช้งานแอปจับภาพหน้าจอ คลิปบอร์ด การแก้ไข และตำแหน่งการบันทึก

วิธีเพิ่มรูปภาพหลายรูปในไฟล์ PDF เดียวบน macOS

วิธีเพิ่มรูปภาพหลายรูปในไฟล์ PDF เดียวบน macOS

รวมภาพหลายภาพเข้าเป็นไฟล์ PDF เดียวบน macOS โดยใช้ Finder หรือ Preview ควบคุมลำดับหน้า หลีกเลี่ยงการตัดขอบ และแก้ไขหน้าที่หายไปโดยไม่ต้องใช้ซอฟต์แวร์เพิ่มเติม

วิธีดูค่า FPS บน macOS: Steam และ Metal HUD ของ Apple

วิธีดูค่า FPS บน macOS: Steam และ Metal HUD ของ Apple

เรียนรู้วิธีแสดงค่า FPS บน Mac โดยใช้โอเวอร์เลย์ประสิทธิภาพของ Steam หรือ Metal Performance HUD ของ Apple รวมถึงวิธีแก้ไขเมื่อตัวนับไม่ปรากฏ

วิธีบังคับปิดแอปบน Mac: 5 วิธีง่ายๆ ในการปิดแอป

วิธีบังคับปิดแอปบน Mac: 5 วิธีง่ายๆ ในการปิดแอป

ใช้ปุ่ม Option–Command–Esc เพื่อบังคับปิดแอป Mac ที่ไม่ตอบสนอง หรือปิดจากเมนู Apple, Dock, Activity Monitor หรือ Terminal

วิธีใช้ฟังก์ชันแบ่งหน้าจอ (Split Screen) บน Mac: วางสองแอปพลิเคชันไว้เคียงข้างกัน

วิธีใช้ฟังก์ชันแบ่งหน้าจอ (Split Screen) บน Mac: วางสองแอปพลิเคชันไว้เคียงข้างกัน

ตั้งค่า Split View ปรับขนาดหรือแทนที่บานหน้าต่าง ใช้ Mission Control และเรียนรู้ว่าเมื่อใดการจัดเรียงหน้าต่างบนเดสก์ท็อปจะเหมาะสมกับ Mac ของคุณมากกว่า

วิธีลบข้อมูล EXIF ​​จากรูปภาพใน macOS

วิธีลบข้อมูล EXIF ​​จากรูปภาพใน macOS

เรียนรู้วิธีการลบข้อมูล EXIF ​​จากรูปภาพบน macOS ซ่อนตำแหน่งที่ตั้งในแอป Photos ทำความสะอาดไฟล์ JPEG ที่ส่งออกด้วย ExifTool และตรวจสอบผลลัพธ์

วิธีซิงค์สองโฟลเดอร์บน Mac อย่างปลอดภัย

วิธีซิงค์สองโฟลเดอร์บน Mac อย่างปลอดภัย

ซิงค์สองโฟลเดอร์บน Mac ด้วย SyncTwoFolders เลือกการอัปเดตแบบทางเดียวหรือสองทาง และดูตัวอย่างการเปลี่ยนแปลงก่อนที่จะแทนที่หรือลบไฟล์

วิธีสำรองข้อมูลบล็อก Tumblr บน Mac

วิธีสำรองข้อมูลบล็อก Tumblr บน Mac

สำรองข้อมูลบล็อก Tumblr บน Mac ของคุณด้วยฟังก์ชันส่งออกเว็บของ Tumblr ดาวน์โหลดและแตกไฟล์ ZIP เก็บรักษาโพสต์และสื่อต่างๆ ไว้ได้อย่างปลอดภัย และตรวจสอบว่าไฟล์เก็บถาวรนั้นขาดอะไรไปบ้าง

วิธีใช้งาน Google Maps บนคอมพิวเตอร์ Mac

วิธีใช้งาน Google Maps บนคอมพิวเตอร์ Mac

ใช้งาน Google Maps บน Mac ของคุณใน Safari หรือ Chrome ค้นหาสถานที่และเส้นทาง สลับเลเยอร์แผนที่ และเพิ่มเว็บแอป Safari ไปยัง Dock บน macOS Sonoma 14 หรือเวอร์ชันที่ใหม่กว่า

5 โปรแกรมแปลงไฟล์ WAV เป็น MP3 ฟรีที่ดีที่สุดสำหรับ Windows และ macOS

5 โปรแกรมแปลงไฟล์ WAV เป็น MP3 ฟรีที่ดีที่สุดสำหรับ Windows และ macOS

เปรียบเทียบโปรแกรมแปลงไฟล์ WAV เป็น MP3 ฟรี 5 โปรแกรมสำหรับ Windows และ macOS รวมถึงข้อจำกัดของไฟล์ออนไลน์ เครื่องมือแปลงไฟล์แบบกลุ่มในเครื่อง และการตั้งค่าการส่งออกที่ใช้งานได้จริง