Tôi chỉ biết hai cách: alias foo=barvà function foo() { bar }.
Lý do tôi hỏi là - đột nhiên trong một trong các phiên bash của tôi - tôi không thể chạy lnlệnh vì bashlỗi với -bash: /usr/local/.../ln: No such file or directory(trong đó /usr/local/.../là một trong các mục trong PATHbiến môi trường của tôi ).
Tuy nhiên, đây không phải là PATHvấn đề vì nếu tôi chạy, which lnnó sẽ xuất ra nhị phân dự kiến /usr/bin/ln(mà tôi có thể chạy tốt nếu tôi chỉ định đường dẫn tuyệt đối).
Tôi cũng đã kiểm tra lntrong aliasvà functionkhai báo của mình và không có gì:
$ declare -f | grep ln
$ alias | grep ln
Vấn đề chỉ xảy ra trong một phiên bash. Nếu tôi bắt đầu một trình bao mới, nó sẽ hoạt động tốt trở lại, nhưng tôi muốn biết điều gì đã gây ra sự cố bất ngờ này trong một phiên bash cụ thể này.
Bất kỳ ý tưởng như những gì có thể gây ra điều này?
type lntôi cóln is hashed (/usr/local/.../ln)vẻ như là vấn đề, nhưng chính xác thì nó có nghĩa là gì "băm"? Tôi chưa bao giờ nghe nói về tính năng đó trong bash.