Escrevendo um script para manipular iscsi

3

Atualmente, estou escrevendo um script que (pelo menos na teoria) deve instalar e adicionar alterações na configuração no iscsitarget, mas continuo recebendo um erro que não consigo descobrir a origem de.

Os erros sendo:

line 39: $'[20-e': command not found.
mv: cannot stat '/etc/iet/ietd.conf' : No such file or directory.

Aqui está o código até agora:

#!/bin/bash

CONF="/etc/default/iscsitarget."
LOGIN="/etc/iet/ietd.conf.back"

#Dette skjekker om bruker er root

if [[ $EUID -ne 0 ]]; then
  echo "Du må være root for å kjøre dette scriptet."
  exit 1
fi 

#Skjekker om iscsi target er innstallert

dpkg -s "iscsitarget" > /dev/null 2>&1 && {
  echo "Iscsi Target er allerede innstallert."
  } || {
  echo "Innstallerer iscsi target..."
  aptitude -y install iscsitarget
  }

#Her tar vi konfigurasjons filen til og gjør en backup av den

if [ -e "$CONF" ]
  then
    echo "$CONF eksisterer, backup er unødvendig."
  else
    mv /etc/default/iscsitarget /etc/default/iscsitarget.back
    echo "Backup av konfigurasjonsfilen er tatt."
fi

#Her lager vi en ny konfigurasjonsfil til iscsi
cat > /etc/default/iscsitarget <<"EOF"
ISCSITARGET_ENABLE=true
EOF
echo "Konfigurasjonsfil oppdatert!"

#Backup av login fil og login til iscsitarget
if [ -e "$LOGIN" ]
  then
    echo "$LOGIN eksisterer, backup er unødvendig."
  else
    mv /etc/iet/ietd.conf /etc/iet/ietd.conf.back
    echo "Backup av konfigurasjonsfil er tatt."
fi

Mais ou menos isso, obrigado!

    
por user249494 18.02.2014 / 10:58

1 resposta

0

Geralmente isso acontece quando você copia / cola algum comando de outra fonte e, acidentalmente, copia alguns caracteres especiais invisíveis .

Geralmente, o erro se parece com:

line 39: $'[20-e': command not found.

Onde 0302 0240 é octal UTF-8 para um espaço sem quebra.

Se você estiver usando o vi / vim, poderá verificar seu código usando o comando :set list . Como é sugerido em stackoverflow , você pode fazer isso:

:set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<

em seguida, usando :set list , você verá todos os caracteres invisíveis, exceto os espaços em branco

Também recomendo que você adicione shebang no topo do seu script. No seu caso, #!/bin/bash .

    
por c0rp 18.02.2014 / 11:42

Tags