为什么EOF中的代码显示此错误?

时间:2019-05-19 13:54:01

标签: bash shell

我具有此脚本的所有功能,执行脚本时,我需要使用EOF创建另一个脚本并通过第一个脚本打开它,但是当我使用eof创建文件时,我尝试编写该脚本的代码显示此错误:

./ skriptaTjeter.sh:第6行:[::预期为整数表达式

./ skriptaTjeter.sh:第9行:[::预期为整数表达式

./ skriptaTjeter.sh:第13行:[::预期为整数表达式

numer pozitiv ju lutem

我刚开始使用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 个答案:

答案 0 :(得分:2)

$vlera在运行cat之前被扩展,因此您的脚本中的行类似

if [ "" -lt 5000 ]

要引用定界符,以便在此处文档中不发生参数扩展:

cat > skriptaTjeter.sh <<'EOF'
...
EOF