使用shell脚本在运行时调用函数

时间:2016-06-29 13:55:38

标签: bash shell scripting

我有一个要求,即在运行时使用函数名称调用函数或使用shell脚本传递参数。 我的功能是

PID=ps -ef | grep jmeter|grep -v grep
stop(){
echo "started killing the process\n"$PID""
kill $PID
}

我在脚本中有其他功能来启动脚本等。现在,如果需要,我想调用stop()函数。所以,我想在运行时这样做。 如果有人知道,请告诉我。提前致谢。

1 个答案:

答案 0 :(得分:0)

我会这样做:创建脚本>创建别名>随时打电话给它!

  1. 创建stp脚本

    #!/bin/sh
    
    read -p "Are you sure? Do you want to stop $1 process? y/n: " yn
    
    if [ ${yn} = "y" ]; then
      PID=`ps -ef|grep $1|grep -v 'grep'|awk '{print $2}'`
    
      echo "Killing Process=$1, ID=${PID} . . . "
    
      kill -9 ${PID}
    
    fi
    
  2. 创建stp别名,以便它可以用作命令(使用stp脚本的完全限定路径)

    $ echo "alias stp=/home/user/stp" >> ~/.bash_profile
    $ source ~/.bash_profile
    $ sleep 4000 &
    [1] 11092
    
  3. 运行stp命令将进程名称作为参数传递,如下所示 测试:

    $ stp sleep
    Are you sure? Do you want to stop sleep process? y/n: y
    Killing Process=sleep, ID=11092 . . .
    [1]+  Killed                  sleep 4000
    Killed