在下面的代码中,它直接转到其他条件而不是
#!/bin/bash
var=0
if [ "$var" -eq "0" ]
then
echo $var
else
echo $var
fi
答案 0 :(得分:0)
此代码可以明确地使用完全,但不做任何更改。
将它放在一个名为testscript
的脚本中,并运行PS4=':$LINENO+' bash -x testscript
(打印每个在它来自的源文件中的行号前面调用的命令),得到以下输出:< / p>
:2+var=0
:3+'[' 0 -eq 0 ']'
:5+echo 0
0
现在,让我们看看该跟踪中的行号与原始源文件中的行号:
#!/bin/bash # line 1
var=0 # line 2 -- :2+var=3
if [ "$var" -eq "0" ] # line 3 -- :3+'[' 0 -eq 0 ']'
then # line 4
echo $var # line 5 -- :5+echo 0
else # line 6
echo $var # line 7
fi
...而且我们按顺序进入第2行,第3行和第5行意味着我们实际上采用了真值分支,而不是else
分支。
答案 1 :(得分:0)
#!/bin/bash
var=0
if [ "$var" -eq "0" ]
then
echo $var
echo "Hello"
else
echo $var
echo "ELSE"
fi
将打印:0 Hello
意味着它只在循环中运行。检查一次