Bất cứ ai có thể giải thích cho tôi những gì vỏ làm trong hai ví dụ A) và B) dưới đây? Nó rõ ràng hành xử khác nhau, nhưng tôi không thể tìm ra lý do tại sao đầu ra khác nhau.
Ví dụ:
Chúng ta có một tập lệnh trong thư mục hiện tại của chúng tôi được đặt tên bla.sh
chỉ bằng một lệnh:
echo ${0##/*} hello
A)
Bắt đầu như: ./bla.sh
cho:./bla.sh hello
B)
Bắt đầu như: . bla.sh
cho:-bash hello
Vì tôi sử dụng điều này trong một tập lệnh, đầu ra thứ hai (vì dấu "-" phía trước -bash) sẽ giết lệnh. Tất nhiên, một đơn giản --
trước khi được ${...}
giúp đỡ, nhưng tôi rất muốn hiểu những gì gây ra đầu ra ở nơi đầu tiên.
Tôi thích bash. Và vi [m]. Nhưng tôi lạc đề…