Xử lý đối số
Xử lý các đối số được truyền qua dòng lệnh của tập lệnh đơn giản như sau. Nói rằng chúng tôi đã có kịch bản này:
$ cat cmd.bash
#!/bin/bash
echo "arg1: $1"
echo "arg2: $2"
Bây giờ chạy không có đối số:
$ ./cmd.bash
arg1:
arg2:
Với 1 đối số:
$ ./cmd.bash hi
arg1: hi
arg2:
Với 2 đối số:
$ ./cmd.bash hi bye
arg1: hi
arg2: bye
Kiểm tra các đối số
Sau đó, bạn có thể kiểm tra xem các đối số, 1 & 2, có phải là thư mục hợp lệ hay không, sau đó bảo lãnh hoặc tiếp tục khi cần thiết. Vì vậy, chúng tôi giới thiệu 2 kiểm tra để xem 2 đối số có phải là thư mục hay không, nếu không thì thoát.
$ cat cmd.bash
#!/bin/bash
[ -d "$1" ] || exit
[ -d "$2" ] || exit
[ $# == 2 ] || exit
echo "arg1: $1"
echo "arg2: $2"
Thí dụ
Nói rằng chúng tôi có những thư mục này.
$ mkdir d1 d2
$ ls -l
total 12
-rwxrwxr-x. 1 saml saml 89 Oct 14 23:13 cmd.bash
drwxrwxr-x. 2 saml saml 4096 Oct 14 23:14 d1
drwxrwxr-x. 2 saml saml 4096 Oct 14 23:14 d2
Nếu chúng ta được cung cấp bất cứ thứ gì ngoài 2 thư mục, tập lệnh sẽ thoát ra.
$ ./cmd.bash hi bye
Nếu chúng tôi đưa ra 2 thư mục:
$ ./cmd.bash d1 d2
arg1: d1
arg2: d2
Nếu chúng tôi đưa ra nhiều hơn 2 đối số:
$ ./cmd.bash d1 d2 d3
Tôi sẽ để lại sự so sánh của 2 thư mục với bạn. Để học Bash, tôi sẽ hướng dẫn bạn đến liên kết dưới đây để có một cuốn sách trực tuyến miễn phí về Bash.
Người giới thiệu