shell中的函数

首先我们先来一个简单的脚本程序

#!/bin/sh

foo() {
    echo "executing"
}

echo "starting"
foo
echo "end"
exit 0

这里,我们只需要注意一点,因为shell脚本的执行顺序是从上往下依次执行的,所以我们必须在使用函数前对函数进行声明。这点尤其重要。

接着,我们来编写一个有返回值的函数,稍微增加一点难度,

#!/bin/sh

yes_or_no() {
  echo "Is your name $*?"
  while true
  do
    echo -n "Enter yes or no: "
    read x
    case "$x" in 
      y | yes ) return 0;;
      n | no ) return 1;;
      * )        echo "Answer yes or no "
    esac
  done
}
# 这里是主体部分
echo "Original parameters are $*"
if yes_or_no "$1"
then
  echo "hi $1, nice name"
else
  echo "Never mind"
fi
exit 0

在这个程序里面,我们首先定义了函数yes_or_no,在函数的主体部分进行调用时执行,我们看看这个脚本的执行

$ ./my_name Rick Neil

这里我们执行脚本时传给脚本参数,他们被保存在$1 $2中,并传递给函数进一本执行。这两个简单的例子说明了shell脚本的执行过程及参数传递。(补充一点:在上面的例子中,case中的条件已经记着要以;; 两个分好结束!)

你可能感兴趣的:(shell中的函数)