Trong nhiều câu hỏi SO và hướng dẫn bash tôi thấy rằng tôi có thể truy cập dòng lệnh args trong tập lệnh bash theo hai cách:
$ ~ >cat testargs.sh
#!/bin/bash
echo "you passed me" $*
echo "you passed me" $@
Kết quả nào trong:
$ ~> bash testargs.sh arg1 arg2
you passed me arg1 arg2
you passed me arg1 arg2
Sự khác biệt giữa $*
và là $@
gì?
Khi nào nên sử dụng cái trước và khi nào nên sử dụng cái trước?
echo "something $@"
là một lỗi