Điểm:1

Biến môi trường trống trong Bash Script

lá cờ pl

Tôi có một phiên bản EC2 mà tôi đang triển khai trên AWS.

Tôi đang sử dụng Amazon Linux 2 và tôi đang chuyển dữ liệu người dùng tới nó như sau:

userdata_file.write(
        f'''
        #!/bin/bash\n
        xuất PAGERDUTYAPIKEY='mykey'\n
        sudo yum cài đặt git -y\n
        chmod +x ./basic_test.sh \n
        tiếng vang $PAGERDUTYAPIKEY> /home/ec2-user/pagerDutyapikey1.txt\n
        sudo ./basic_test.sh
        '''.strip()
    )

basic_test.sh

#!/bin/bash

tiếng vang "s/enterpager Dutyapikey/${PAGERDUTYAPIKEY}/g" > path.txt

Tuy nhiên, khi tôi chạy nó, trong đường dẫn.txt nó đang lặp lại như vậy:

s/enterpager dutyapikey//g

Nhưng khi tôi ssh trong máy chủ và chạy cùng một tập lệnh bash, nó sẽ lặp lại như sau:

s/enterpager dutyapikey/mykey/g

Bất kỳ ý tưởng tại sao biến môi trường $PAGERDUTYAPIKEY hiển thị trống khi tôi chạy qua dữ liệu người dùng?

lá cờ in
Đã đăng chéo lên [StackOverflow](https://stackoverflow.com/q/70423727/1030675).
lá cờ jp
Như đã đề cập trong các nhận xét về SO, `sudo` đặt lại hầu hết các biến môi trường. Bỏ `sudo` khỏi tập lệnh dữ liệu người dùng, nó vẫn chạy dưới dạng `root`.
Mervin Hemaraju avatar
lá cờ pl
Thả sudo đã hoạt động! Cảm ơn
lá cờ cn
@MervinHemaraju - nếu bạn đăng câu trả lời dưới dạng câu trả lời tại đây, bạn có thể đánh dấu câu hỏi này là đã trả lời và giúp mọi người nhấp qua SO!
Điểm:1
lá cờ pl

Đăng bài từ bài đăng StackOverflow https://stackoverflow.com/questions/70423727/environment-variable-empty-in-bash-script

Như @chepner đã trả lời, sudo không bảo toàn các biến môi trường tùy ý theo mặc định vì lý do bảo mật. Vì vậy, việc bỏ sudo khỏi lệnh đã giúp tôi.

lá cờ in
Vui lòng không gửi chéo câu hỏi của bạn. Xóa câu hỏi của bạn tại đây hoặc trên SO. IMO SO phù hợp hơn cho câu hỏi.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.