Theo số manual, [email protected]
mở rộng đến thông số vị trí, bắt đầu từ một. Nếu bạn gọi tập lệnh này là scripty.sh ls /
, nó sẽ thực thi ls /
trong khi chuyển hướng tất cả đầu ra sang nhóm bit. Điều đó sẽ trở lại thành công (tôi hy vọng!) Và do đó kịch bản sẽ in Valid command
. Nếu bạn gọi nó là scripty.sh ls /some/nonexistent/directory
thì lệnh ls
sẽ không thành công và tập lệnh sẽ không xuất được gì.
Thực ra, tôi nghĩ rằng tập lệnh có thể được cải thiện để đặt dấu ngoặc kép xung quanh [email protected]
để các đối số có dấu cách trong đó không chuyển lên trình thông dịch.
Với [email protected]
lệnh ls "/Library/Application Support"
được mở rộng thành ba từ. Với "[email protected]"
nó được mở rộng thành hai, và lệnh được chạy giống như nó sẽ không có kịch bản gói nó.
Chỉ cần để hỗ trợ: giải thích được tìm thấy ở đây: http: // tldp .org/LDP/abs/html/internalvariables.html # APPREF – Yuri
Tôi nghĩ rằng '$ *' và '$ @' chỉ khác nhau khi được bao quanh bởi dấu ngoặc kép. – mkb
@mkb: bạn nói đúng. Tôi sợ @unwind không phải là: không chỉ định '" $ @ "', các tham số sẽ được phân tách khoảng trắng, tức là 'hàm TT() {$ @; }; TT ls 1 2 '3 4'' – choroba