почему код внутри EOF показывает эту ошибку? - PullRequest
3 голосов
/ 19 мая 2019

У меня есть этот скрипт со всеми функциями, и когда он выполняется, мне нужно создать другой скрипт с EOF и открыть его через первый скрипт, но когда я создаю файл с помощью eof и пытаюсь написать код скрипта, он показывает эту ошибку:

. / SkriptaTjeter.sh: строка 6: [:: ожидается целочисленное выражение

. / SkriptaTjeter.sh: строка 9: [:: ожидается целочисленное выражение

. / SkriptaTjeter.sh: строка 13: [:: ожидается целочисленное выражение

номер позитив ю лютем

Я только начал с сценариев bash, и я не понимаю, что я сделал не так

cat > skriptaTjeter.sh <<EOF
#! /bin/bash

clear
echo Shkruani te ardhurat
read vlera
if [ "$vlera" -lt 5000 ]
then
    echo nuk ka asnje takse
elif [ "$vlera" -ge 5000 ] && [ "$vlera" -le 30000 ]
then
    tatimi=$((vlera*10/100))
    echo shkalla tatimore eshte 10% : $tatimi
elif [ "$vlera" -gt 30000 ]
then
    tatimi=$((vlera*20/100))
    echo shkalla tatimore eshte 20% : $tatimi
else 
    echo numer pozitiv ju lutem
fi


EOF


./skriptaTjeter.sh

1 Ответ

2 голосов
/ 19 мая 2019

$vlera расширяется до запуска cat, поэтому в вашем скрипте есть строки типа

if [ "" -lt 5000 ]

. Вы хотите заключить в кавычки, чтобы в документе здесь не происходило расширение параметров:

cat > skriptaTjeter.sh <<'EOF'
...
EOF
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...