Score:0

ตัวแปรในคำสั่ง set-hostname และ mv ในเชลล์สคริปต์

ธง cn

ฉันมีสคริปต์ด้านล่างในเชลล์:

อ่าน n
สำหรับ ((i=1;i<=$n;i++))
ทำ
echo "กำลังเชื่อมต่อกับ $publicip"
ssh -i ./key.txt root@$publicip 'hostnamectl set-hostname autotest$i.domain.com && mv /etc/letsencrypt/live/autotest.domain.com /etc/letsencrypt/live/autotest$i.domain .com && รีบูต'
เสร็จแล้ว

คำสั่ง mv ใช้ตัวแปรจากคำสั่งด้านบน แต่ดูเหมือนจะไม่ทำงานสิ่งที่ฉันได้รับข้อผิดพลาดคือ mv: ไม่สามารถย้าย '/etc/letsencrypt/live/autotest.domain.com' ไปยังไดเร็กทอรีย่อยของตัวเอง '/etc/letsencrypt/live/autotest.domain.com/autotest.domain.com' แม้แต่ชื่อโฮสต์ที่ตั้งไว้ก็ดูเหมือนจะไม่ทำงาน (โดยเฉพาะกับตัวแปร) เมื่อฉันตรวจสอบเซิร์ฟเวอร์อื่นเพื่อดูว่ามีการเปลี่ยนชื่อโฮสต์หรือไม่ ลองหลายสิ่งหลายอย่างเกี่ยวกับตัวแปรเช่นเพิ่ม "" และ {} เป็นต้น แต่ไม่มีอะไรทำงาน

ใครสามารถช่วยฉันในเรื่องนี้

Score:1
ธง fr

ตัวแปรเชลล์จะไม่ขยายเป็นเครื่องหมายคำพูดเดี่ยว ' ข้อความ. ใช้อัญประกาศคู่ " สำหรับสตริงที่มีตัวแปรเชลล์

serverstackqns avatar
cn flag
แสดงความคิดเห็นด้วยคำตอบที่ถูกต้อง: ssh -i ./key.txt root@$publicip "hostnamectl set-hostname autotest$i.domain.com && mv /etc/letsencrypt/live/autotest.domain.com /etc/letsencrypt/live/autotest$i.domain .com && รีบูต"

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา