Написание скрипта для обработки iscsi

В настоящее время я пишу скрипт, который (по крайней мере, теоретически) должен установить и добавить изменения в конфигурацию на iscsitarget, но я продолжаю получать сообщение об ошибке, которое, как мне кажется, не может выяснить происхождение.

Ошибки:

line 39:  

Вот код на данный момент:

#!/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

Вроде нового для этого, спасибо!

[\302\240-e': command not found. mv: cannot stat `/etc/iet/ietd.conf' : No such file or directory.

Вот код на данный момент:

#!/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

Вроде нового для этого, спасибо!

3
задан 18 February 2014 в 15:30

1 ответ

Обычно это происходит, когда вы копируете / вставляете какую-то команду из другого источника и случайно копируете некоторые невидимые специальные символы .

Ошибка обычно выглядит следующим образом:

line 39:  

Где 0302 0240 - восьмеричное UTF-8 для неразрывного пробела.

Если вы используете vi / vim, вы можете проверить свой код с помощью команды :set list. Как предлагается в stackoverflow , вы можете сделать это:

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

, затем, используя :set list, вы увидите все невидимые символы, кроме пробелов

Также я рекомендую вам добавьте шебанг вверху вашего скрипта. В вашем случае #!/bin/bash.

[\302\240-e': command not found.

Где 0302 0240 - восьмеричное UTF-8 для неразрывного пробела.

Если вы используете vi / vim, вы можете проверить свой код с помощью команды :set list. Как предлагается в stackoverflow , вы можете сделать это:

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

, затем, используя :set list, вы увидите все невидимые символы, кроме пробелов

Также я рекомендую вам добавьте шебанг вверху вашего скрипта. В вашем случае #!/bin/bash.

0
ответ дан 18 February 2014 в 15:30

Другие вопросы по тегам:

Похожие вопросы: