Điểm:2

Khi thực thi tập lệnh bash shell trong Ubuntu 18.04, tham số vị trí không hoạt động, tôi có thể giải quyết vấn đề này như thế nào?

lá cờ fo

Tên của tập lệnh là InstallmDNS.sh

Nội dung kịch bản như sau:

#!/bin/bash

tên máy chủ () {
  nếu [ $# -eq 1 ]
  sau đó
    hostnamectl set-hostname "$1"
    sed -i "/127.0.1.1/d" /etc/hosts
    sed -i "/127.0.0.1/a\127.0.1.1 $1" /etc/hosts
    khởi động lại
  khác
    echo "Ví dụ về thực thi tập lệnh: bash InstallmDNS.sh server1"
    echo "Tập lệnh này được thực thi với một tham số."
    thoát 0
  fi
}

dia=`trạng thái systemctl avahi-daemon|grep Đang hoạt động`
nếu [[ "$dia" =~ "đang chạy" ]]
sau đó
  tiếng vang "mDNS đang chạy"
  đặt tên máy chủ
khác
  apt-get cài đặt avahi-daemon -y
  echo "cài đặt mDNS hoàn tất."
  đặt tên máy chủ
fi

Tôi chạy kịch bản:

root@linux:/home/ankon# bash InstallmDNS.sh
mDNS đang chạy
Ví dụ về thực thi tập lệnh: bash InstallmDNS.sh server1
Tập lệnh này được thực thi với một tham số.

Tôi chạy tập lệnh với các tham số:

root@linux:/home/ankon# bash InstallmDNS.sh server2
mDNS đang chạy
Ví dụ về thực thi tập lệnh: bash InstallmDNS.sh server1
Tập lệnh này được thực thi với một tham số.

Tôi đã thêm các tham số và chạy tập lệnh, nhưng các tham số không làm gì cả, điều gì đã gây ra điều này? Làm thế nào tôi có thể sửa chữa nó?

Điểm:4
lá cờ us

$# trong hàm của bạn chứa số lượng đối số được truyền cho hàm chứ không phải cho toàn bộ tập lệnh. Bạn có thể thực hiện đặt tên máy chủ "$@" để chuyển tất cả các đối số tập lệnh sang hàm, thì số lượng đối số sẽ hoạt động như bạn mong đợi.

Andrew avatar
lá cờ fo
Cảm ơn rất nhiều!
lá cờ us
Không có gì :) Nếu nó phù hợp với bạn - vui lòng đánh dấu câu trả lời là được chấp nhận để cho người khác thấy rằng nó giải quyết được vấn đề.

Đă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.