shell 中的自定义函数 问题
fun1()
{
read x
if [ $x -eq 8 ]
then
echo "x==8"
return 1
else
return 0
echo "x!=8"
fi
}
fun2(){
echo "fun2"
}
echo $fun1
if fun1
then
echo "true"
exit 0
else
fun2
fi
当我输入x的值为8时,fun1函数return1,木有问题。
接下来的if判断语句着实让我迷惑了。
为什么执行的是else?
为什么echo $fun1 输出的是空格(或者是回车)?
如果if条件换成是 : if $fun1
则结果运行的是then
[解决办法]
fun1 不存在,如果需要调用自己的fun1(),需要$fun1
[解决办法]
楼主写得好奇怪,fun1这个变量有定义吗?看楼主上面写的是一个函数啊,echo $fun1
if fun1 这边也不能这样写的吧?
建议函数还是写成function fun1 () {}