2016-06-29 3 views
0

런타임시 함수 이름을 사용하여 함수를 호출하거나 쉘 스크립트를 사용하여 매개 변수를 전달해야한다는 요구 사항이 있습니다. 내 기능은쉘 스크립팅을 사용하여 런타임에 함수를 호출하십시오.

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

내가 지금, 필요한 경우에만 정지() 함수를 호출 할 등 스크립트를 시작 스크립트에서 다른 기능을 가지고있다. 그래서 저는 그것을 런타임에하고 싶습니다. 누군가 알고 있다면 알려주세요. 미리 감사드립니다.

+2

이것은 관련이 없지만 PID를 얻는 방법이 잘못되었습니다. –

+1

"런타임에 함수 호출"이란 무엇을 의미하는지 설명해 주시겠습니까? – Fazlin

+0

@soFan. PID 명령을 수정했는데 한 번 확인하십시오. – krish

답변

0

다음과 같이하면됩니다. create script> create alias> 언제든지 호출하십시오! 그것이 될 수

  1. $ echo "alias stp=/home/user/stp" >> ~/.bash_profile 
    $ source ~/.bash_profile 
    $ sleep 4000 & 
    [1] 11092 
    
  2. 실행 stp 명령을 전달하는 과정을 명령과 사용 (stp 스크립트에 정규화 된 경로를 사용)를 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 
    
  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 
    
+0

나는 어제 같은 일을했다. 나는 결과를 얻었다. 고맙습니다. – krish

+0

위대한 솔루션입니다. 해결 방법은 다음과 같습니다. 답변 - 감사합니다. –

+0

완료. 고맙습니다 – krish

관련 문제