shell 脚本错误无法找到

shell 脚本错误无法找到

我有此代码,但无法指出错误。这是一个打印用户给出的数字表的简单程序。

以下是代码:

#a function to calculate the table
call()
{
#to check if it is in function
  echo "in function"
#read from user a no whose table is to print
  read num
#taking counter
  i=0
  echo "going in loop"

        while [ $i -lt 10 ]
   do
        echo "in loop"

#incrementing the counter
        i=$(( $i + 1 ))

#s= i + sa
        s=$(($i * $num))

##printing the value of num
         echo "\t$num * $i =$s"
    done
  return 0
}


     while [ 1 ]
do
     echo "in main "

#calling the function call()
     echo "caliing call"
call()

#asking user to continue or not
     echo "COntinue.. or not [0/1] "
    read ch

 if [ $ch -eq 0 ]
   then
       {}
   else
       exit

 fi
done

输出如下

nik-pc@nik:~$ sh cd.sh

in main 

caliing call

12

nik-pc@nik:~$

答案1

在 中bash,要调用(引用)一个函数只需使用函数的名称,()而不被使用。

因此改为call()call引用名为 的定义函数call

请注意,您仍然需要()在函数声明时。

例如,声明如下:

foobar () { .... ;}

引用时:

foobar

sh( dash) 中,引用call()将被默默忽略而不会引发错误,并且 shell 将直接转到脚本的下一行。

此外,除非您确定,否则最好bash运行这些脚本以避免意外。


另外,您的代码中还有许多可以改进的地方,这超出了本问题的范围。

相关内容