В настоящее время я пишу скрипт, который (по крайней мере, теоретически) должен установить и добавить изменения в конфигурацию на 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
Вроде нового для этого, спасибо!
Обычно это происходит, когда вы копируете / вставляете какую-то команду из другого источника и случайно копируете некоторые невидимые специальные символы .
Ошибка обычно выглядит следующим образом:
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
.