Tôi vô tình bắt đầu một tập lệnh bash với $!
thay vì #!
và có hành vi rất lạ. Tôi đang cố gắng tìm ra những gì đã xảy ra.
Nếu bạn cố gắng kịch bản này:
$!/bin/bash
echo Hello world!
bạn sẽ nhận được các hành vi sau đây:
$ chmod +x hello
$ ./hello
[nothing happens, get prompt back]
$ exit
exit
Hello world!
$
Vì vậy, nó trông như thế này xảy ra:
- Một shell bash mới sinh ra.
- Khi thoát, phần còn lại của tập lệnh được thực thi.
Có chuyện gì? Mọi thứ xảy ra như thế nào? Nếu không có #!
, vỏ sẽ biết sử dụng bash
để diễn giải kịch bản như thế nào?
Rõ ràng đây là "thỏa mãn sự tò mò của tôi" thay vì "giải quyết vấn đề của tôi". Googling không mang lại nhiều lợi nhuận, có lẽ vì các truy vấn #!
và $!
không làm cho Google-bot vui vẻ.