Puncte:2

Când execut un script shell bash în ubuntu 18.04, parametrul de locație nu funcționează, cum pot rezolva această problemă?

drapel fo

Numele scriptului este InstallmDNS.sh

Conținutul scriptului este următorul:

#!/bin/bash

sethostname() {
  dacă [ $# -eq 1 ]
  atunci
    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
    reporniți
  altfel
    echo „Exemplu de executare a scriptului: bash InstallmDNS.sh server1”
    echo "Acest script este executat cu un singur parametru."
    iesirea 0
  fi
}

dia=`systemctl status avahi-daemon|grep Active`
dacă [[ "$dia" =~ "în rulare" ]]
atunci
  echo „mDNS rulează”
  sethostname
altfel
  apt-get install avahi-daemon -y
  echo „Instalarea mDNS s-a încheiat”.
  sethostname
fi

Rulez scriptul:

root@linux:/home/ankon# bash InstallmDNS.sh
mDNS rulează
Exemplul de executare a scriptului: bash InstallmDNS.sh server1
Acest script este executat cu un singur parametru.

Rulez scriptul cu parametrii:

root@linux:/home/ankon# bash InstallmDNS.sh server2
mDNS rulează
Exemplul de executare a scriptului: bash InstallmDNS.sh server1
Acest script este executat cu un singur parametru.

Am adăugat parametrii și am rulat scriptul, dar parametrii nu au făcut nimic, ce a cauzat asta? Cum pot repara?

Puncte:4
drapel us

$# în funcția dvs. conține numărul de argumente transmise funcției, nu întregului script. Ai putea executa sethostname „$@” pentru a trece toate argumentele script-ului la funcționare, apoi numărul de argumente va funcționa așa cum v-ați așteptat.

Andrew avatar
drapel fo
Multumesc foarte mult!
drapel us
Sunteți binevenit :) Dacă funcționează pentru dvs. - vă rugăm să marcați răspunsul ca fiind acceptat pentru a permite altor persoane să vadă că rezolvă problema.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.