Sự khác biệt giữa các phần mở rộng tệp .command, .tool và .sh là gì?


21

Tôi thấy một vài câu hỏi về việc thực thi các tập lệnh dòng lệnh? Tôi thấy rằng các phần mở rộng .command và .tool đã được đề cập. Tôi đã luôn luôn sử dụng .sh. Sự khác biệt giữa các kịch bản khác nhau là gì? Do một số phần mở rộng cho phép các lệnh khác nhau?

Câu trả lời:


14
  • .command - (Tập lệnh shell Terminal) Liên kết cụ thể tập lệnh shell với Terminal. Đôi khi được gọi là "Tệp thiết bị đầu cuối."
  • .tool - (Tập lệnh shell Terminal) Giống như phần mở rộng tệp ".command".
  • .sh - (Shell Script) Tập lệnh shell cơ bản được liên kết với Xcode 4.1.

Về mặt lập trình, tôi chắc chắn rằng sự khác biệt giữa hai phần đầu (.command so với .tool) là tinh tế, trong khi phần ba về cơ bản là một tập lệnh shell mặc định đơn giản. Và trên thực tế có liên quan đến Xcode 4.1.

nhập mô tả hình ảnh ở đây


5
"Tôi chắc chắn rằng sự khác biệt giữa hai cái đầu tiên (.command so với .tool) là tinh tế" Trên thực tế, sự khác biệt là không tồn tại :-) Terminal xử lý chúng giống hệt nhau. Hai phần mở rộng tên tệp ánh xạ tới cùng một loại tệp trong Info.plist và Terminal của Terminal không cố gắng phát hiện phần mở rộng nào được cung cấp. Ngoài ra, ngoài việc có các phần mở rộng khác nhau có nghĩa là chúng có thể có các ứng dụng mặc định khác nhau, nội dung của cả ba loại tệp này đều giống nhau. Tất cả chúng chỉ là kịch bản shell.
Chris Trang

2

Tôi tin rằng các tệp .sh được "sở hữu" theo Xcode theo mặc định, vì vậy nếu bạn nhấp đúp vào một trong số chúng, nó sẽ mở trong Xcode thay vì thực thi.

Các tệp .command và .tool được sở hữu bởi Terminal theo mặc định, vì vậy nếu bạn nhấp đúp vào một trong số chúng, nó sẽ mở và thực thi trong Terminal.

Tôi không nhận ra bất kỳ sự khác biệt nào khác giữa chúng.

Tôi cũng đã sử dụng .sh cho các kịch bản shell, nhưng gần đây tôi đã dừng lại vì tôi đã bắt đầu viết các kịch bản shell của mình bằng Zsh thay vì sh, và thật khó hiểu khi cố gắng nhớ liệu một lệnh nào đó đã kết thúc bằng .sh hay .zsh, vì vậy cuối cùng tôi chỉ cần đặt tất cả chúng vào ~ / bin / và đảm bảo rằng chúng có thể thực thi được và không sử dụng phần mở rộng tệp trên chúng.


Thật ra họ không mở trong Xcode. Và tôi đã cài đặt Xcode trên máy của mình.
daviesgeek

1
Các tệp .sh có thể mở trong Xcode (nhấp chuột điều khiển »" mở bằng "sẽ hiển thị Xcode dưới dạng tùy chọn), nhưng ứng dụng nào chúng mở sẽ phụ thuộc vào ứng dụng nào được cài đặt lần đầu và" yêu cầu "tiện ích mở rộng. Nếu một ứng dụng khác đã được cài đặt trước Xcode và yêu cầu .sh, nó sẽ không hiển thị dưới dạng mở với Xcode.
TJ Luoma

1
Bạn đã đúng: Khác với thực tế là các phần mở rộng tên tệp khác nhau cho phép chúng có các ứng dụng mặc định khác nhau, nội dung và cách xử lý của các tệp này là như nhau. Tất cả chúng chỉ là tập tin shell shell.
Chris Trang
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.