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

标签 bash shell

我有这个脚本的所有功能,当脚本执行时,我需要用 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

最佳答案

$vleracat 运行之前被扩展,所以你的脚本有这样的行

if [ "" -lt 5000 ]

您想引用分隔符,以便此处文档中不会发生参数扩展:

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

关于bash - 为什么 EOF 中的代码显示此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56208483/

相关文章:

ruby - 如何让 ruby​​ 的 `system` 调用知道我的 `.bash_profile` 别名?

bash - 在 bash 完成中正确处理空格和引号

bash - 如何在 bash 中组合 getopts 和位置参数?

mysql - 如何使用shell脚本访问mysql数据库?

linux - 计算整个文件中子字符串的出现次数

linux - 需要这个 UNIX 命令的帮助

linux - 从 CentOS Journalctl 获取特定的 PID

bash - 如何在posix环境中运行bash shell脚本?

linux - 将参数保存在传递给 shell 脚本的不同变量中

python - 隐藏 subprocess.check_output() 的 shell 输出