bash: คำเตือน: ระดับเชลล์ (1,000) สูงเกินไปตั้งค่าเป็น 1


14

ฉันพยายามเรียกใช้คำสั่งนี้:

/etc/ssl/acme/acme.sh --log /var/log/p3x/acme/acme.sh.log --home /etc/ssl/acme --force --issue -d patrikx3.tk -w /var/www/acme-challenge

ฉันได้รับข้อผิดพลาดนี้:

bash: คำเตือน: ระดับเชลล์ (1,000) สูงเกินไปตั้งค่าเป็น 1

ข้อผิดพลาดนี้คืออะไร?


ผมมีเรื่องนี้เกิดขึ้นในMakefileเนื่องจากวิธีการและสถานที่ (ภายในifneqข้อ) ผมทำงานคำสั่งที่จะใช้ผมต้องเรียกใช้คำสั่งภายในหนึ่งใช้vagrant ssh -c &&บางทีนี่อาจช่วยใครซักคน
NuclearPeon

คำตอบ:


16

ระดับเชลล์ระบุระดับของเชลล์ย่อยในเชลล์ที่ซ้อนกัน

Bash man - ระดับเชลล์ SHLVL

SHLVL - เพิ่มขึ้นหนึ่งครั้งทุกครั้งที่อินสแตนซ์ใหม่ของ Bash เริ่มต้นขึ้น

  • นี่เป็นจุดประสงค์ที่จะนับว่าเปลือก Bash ของคุณอยู่ลึกเพียงใด

อย่างที่คุณเห็นนี่

เมื่อbashรันตัวเองระดับ bash shell จะสูงกว่าใน 1

การเรียกแบบเรียกซ้ำเพื่อทุบตีต่อไปนี้:

$ echo "bash haha" > haha
$ bash haha

รับข้อความนี้เป็นระยะ:

bash: คำเตือน: ระดับเชลล์ (1,000) สูงเกินไปตั้งค่าเป็น 1

ความหมายของข้อผิดพลาดด้านบนคือทุบตีที่เรียกตัวเองว่า 1,000 ครั้ง

อีกตัวอย่างหนึ่งที่ตัวแปร $ SHLVL ติดตามระดับการซ้อนของเชลล์:

$ echo $SHLVL
1
$ bash
$ echo $SHLVL
2
$ exit
$ echo $SHLVL
1

คุณรู้วิธีกำจัดข้อผิดพลาดนี้หรือไม่? ฉันยังไม่ได้เปลี่ยนบนเซิร์ฟเวอร์ของฉันฉันยังเห็นว่ามันอยู่ใน CURL ตอนนี้: ทุบตี: คำเตือน: ระดับกระสุน (1,000) สูงเกินไปตั้งค่าเป็น 1
Patrik Laszlo

1
อ่าฉันเข้าใจแล้วฉันมีสคริปเหมือนกันและมันซ้ำได้นั่นคือขอบคุณอีกครั้ง ciao!
Patrik Laszlo

@PatrikLaszlo - ดีใจที่ได้ยินเช่นนั้น หากคำตอบของฉันแก้ไขคำถามของคุณโปรดยอมรับมัน
Yaron

ฉันจะยอมรับได้อย่างไร ฉันคลิกและนั่นคือทั้งหมดไม่มีปุ่มยอมรับ :(
Patrik Laszlo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.