truyền tham số cho tập lệnh shell, nhưng tại sao có hai giá trị?


1

Tôi có một số rắc rối với một kịch bản shell, xin hãy giúp tôi, thx.

Tôi tạo một tệp kịch bản lệnh shell được đặt tên là 'integration.sh' và mỗi khi tôi gọi tập lệnh này với tham số trông giống như '20180208', '20180214' (định dạng ngày yyyyMMdd) ... vv.

# sh triển khai.sh 20180208

Nội dung cho shell như bên dưới (Tôi đã viết một số dòng để kiểm tra, nhưng tôi đã gặp rắc rối):

#! / thùng / sh

# ĐỊNH NGHĨA
UPLOAD_DATE = $ 1
# ĐẦU RA
SH_LOG = / home / jin.huang / log / execsh.log

Triển khai ()
{
    tiếng vang $ 1
    tiếng vang $ UPLOAD_DATE
}
Triển khai >> $ SH_LOG

vì vậy, tôi đã chuyển 20180208 vào triển khai.sh, nhưng tôi đã nhận được hai kết quả với giá 1 đô la:

tiếng vang $ 1
tiếng vang "$ 1"

những bản in trống trên màn hình;

tiếng vang $ UPLOAD_DATE
tiếng vang "$ UPLOAD_DATE"

những bản in này '20180208' trên màn hình.

Tại sao có hai kết quả?


Nếu tôi hiểu chính xác, kịch bản $1không phải là chức năng tương tự $1. Bạn có thể truyền tham số cho các chức năng bên trong tập lệnh. Deploy "$1"sẽ truyền script $1cho hàm.
Paulo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.