Score:2

เมื่อเรียกใช้สคริปต์ bash shell ใน Ubuntu 18.04 พารามิเตอร์ตำแหน่งไม่ทำงาน ฉันจะแก้ปัญหานี้ได้อย่างไร

ธง fo

ชื่อของสคริปต์คือ InstallmDNS.sh

เนื้อหาสคริปต์มีดังนี้:

#!/bin/bash

ตั้งค่าชื่อโฮสต์ () {
  ถ้า [ $# -eq 1 ]
  แล้ว
    hostnamectl ตั้งค่าชื่อโฮสต์ "$1"
    sed -i "/127.0.1.1/d" /etc/hosts
    sed -i "/127.0.0.1/a\127.0.1.1 $1" /etc/hosts
    รีบูต
  อื่น
    echo "ตัวอย่างการรันสคริปต์: bash InstallmDNS.sh server1"
    echo "สคริปต์นี้ดำเนินการด้วยพารามิเตอร์เดียว"
    ทางออก 0
  ไฟ
}

dia=`สถานะ systemctl avahi-daemon|grep Active`
ถ้า [[ "$dia" =~ "วิ่ง" ]]
แล้ว
  echo "mDNS กำลังทำงานอยู่"
  ตั้งชื่อโฮสต์
อื่น
  apt-get ติดตั้ง avahi-daemon -y
  echo "การติดตั้ง mDNS เสร็จสมบูรณ์"
  ตั้งชื่อโฮสต์
ไฟ

ฉันเรียกใช้สคริปต์:

root@linux:/home/ankon# ทุบตี InstallmDNS.sh
mDNS กำลังทำงานอยู่
ตัวอย่างของการเรียกใช้สคริปต์: bash InstallmDNS.sh server1
สคริปต์นี้ดำเนินการด้วยพารามิเตอร์เดียว

ฉันรันสคริปต์ด้วยพารามิเตอร์:

root@linux:/home/ankon# ทุบตี InstallmDNS.sh server2
mDNS กำลังทำงานอยู่
ตัวอย่างของการเรียกใช้สคริปต์: bash InstallmDNS.sh server1
สคริปต์นี้ดำเนินการด้วยพารามิเตอร์เดียว

ฉันเพิ่มพารามิเตอร์และรันสคริปต์แล้ว แต่พารามิเตอร์ไม่ได้ทำอะไรเลย เกิดจากอะไร ฉันจะแก้ไขได้อย่างไร

Score:4
ธง us

$# ในฟังก์ชันของคุณมีจำนวนอาร์กิวเมนต์ที่ส่งผ่านไปยังฟังก์ชัน ไม่ใช่ไปยังสคริปต์ทั้งหมด คุณสามารถดำเนินการ ตั้งชื่อโฮสต์ "$@" เพื่อส่งอาร์กิวเมนต์สคริปต์ทั้งหมดไปยังฟังก์ชัน จากนั้นจำนวนอาร์กิวเมนต์จะทำงานตามที่คุณคาดไว้

Andrew avatar
fo flag
Thanks very much!
us flag
You are welcome :) If it works for you - please mark answer as accepted to let other people see that it solves issue.

โพสต์คำตอบ

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