Nếu tên của tệp có bộ bit cho phép thực thi được nhập trên dòng lệnh hoặc nếu tên của tệp đó được chuyển đến một trong các lệnh gọi biến thể exec*() của thư viện thời gian chạy C, thì nhân Linux sẽ cố gắng tải và thực hiện nó.
Điều đầu tiên mà nhân Linux thực hiện là đọc một vài byte đầu tiên của tệp, tìm kiếm các chuỗi "ma thuật" đã biết. Một trong những chuỗi ma thuật đó cũng có thể được hiểu là chuỗi ASCII "#!" còn được gọi là "hash bang" và được rút ngắn thành "shebang". Khi trình tải nhìn thấy điều đó, nó sẽ hiểu phần còn lại của dòng là tên của một tệp khác thành exec, chuyển tệp đầu tiên làm đối số. Một giá trị kỳ diệu khác là "\x7fELF" là một tệp thực thi nhị phân cổ điển, chẳng hạn như chính /bin/sh. Lưu ý rằng mặc định cho bộ nạp hạt nhân, nếu tệp không có phép thuật có thể nhận dạng được, là thực thi /bin/sh và chuyển nó tên của tệp làm đối số đầu tiên -- tương đương với việc có một shebang "#!/bin /sh".
Trên thực tế, việc đánh dấu tập lệnh là có thể thực thi được bằng cách sử dụng chmod +x ./do_one_thing.sh
cùng với một Shebang "#!/bin/sh" tương đương với sh ./do_one_thing.sh
. "Phần mở rộng tệp" hoặc các khái niệm DOS khác thực sự không liên quan bên ngoài DOS, các hệ điều hành tổ tiên của nó như CP/M và các hệ điều hành con cháu của nó như Microsoft Windows.
Nếu bạn muốn mức độ hoàn hảo nhất, hãy đánh dấu các tệp là có thể thực thi được và sử dụng shebang thích hợp. Đừng dựa vào con người để làm điều đúng đắn.