【发布时间】:2018-11-21 20:20:33
【问题描述】:
我正在尝试使用 if then else 语句使用 bash 脚本进行测试自动化,但我遇到了一些错误。一方面,当我尝试执行它时,我对 j 和 k 的变量赋值做错了,因为它告诉我在我尝试执行时找不到命令 j 和命令 k。如何正确创建变量? 最令人困惑的事情是,当我尝试执行脚本时,我收到一个错误,告诉我我在 fi 附近有一个意外的令牌,然后它只是说'fi'。我在这里做错了什么?
#!/bin/bash
j = 0
k = 0
echo Test1:
echo -ne "0\nIn\nUG\n" | /u/cgi_web/Tuition/cost
echo Test2:
echo -ne "0\nOut\nUG\n" | /u/cgi_web/Tuition/cost
echo Test3:
echo -ne "0\nIn\nGR\n" | /u/cgi_web/Tuition/cost
echo Test4:
echo -ne "0\nOut\nGR\n" | /u/cgi_web/Tuition/cost
for i in {1..17}
do
echo Test$((i+4)):
if[ "$j" -eq 0 ] && [ "$k" -eq 0 ] then
$j = 1
echo -ne "$i\nIn\nUG\n" | /u/cgi_web/Tuition/cost
elif[ "$j" -eq 1 ] && [ "$k" -eq 0 ] then
$k = 1
echo -ne "$i\nIn\nGR\n" | /u/cgi_web/Tuition/cost
elif[ "$j" -eq 1 ] && [ "$k" -eq 1 ] then
$j = 0
echo -ne "$i\nOut\nUG\n" | /u/cgi_web/Tuition/cost
elif[ "$j" -eq 0 ] && [ "$k" -eq 1 ] then
$k = 0
echo -ne "$i\nOut\nGR\n" | /u/cgi_web/Tuition/cost
fi
done
编辑:我发现 j 和 k 的变量问题,我必须删除语句中的空格。
【问题讨论】:
-
j = 0->j=0,k = 0->k=0 -
在
if's 之后还需要空格。
标签: bash syntax-error