쉘 스크립트가 사본을 작성하고 자체적으로 종료하는 방법은 무엇입니까?


0

지금까지 나는

trap " call function" 2 

fucntion
{
./test.sh
exit
}

그러나 출구 라인에 도달하지 못하고 모든 프로세스가 쌓여있어 아이디어가 있습니까?

나는 & (bg) 시도했지만 그것을 계속 할 수 있어야합니다 .bg는 한 번만 할 수 있습니다. ctrl C를 입력하면 원래 test.sh를 종료해야하지만 자체 호출해야합니다. 종료하기 전에 새로운 프로세스를 작성하십시오.

이것은 내가 지금까지 가지고있는 것입니다

while [ 1 ]
do

count=0;
echo $count
count=`expr $count + 1`

done

trap "restart" 2 ( for the ctrl c)

restart()
{

 ./callitself.sh
 exit ( it never reaches here therefore it doesnt kill the original process which is what i need otherwise it works fine)

}

무엇의 사본을 만드시겠습니까? 정확히 무엇을하려고하는지 명확하지 않습니다.
David Schwartz

./test.sh를 호출하기 전에 ./test.sh를 호출하기 전에 cp 유틸리티를 호출하고 파일의 사본을 만들어야합니다 (단, 목적이 있기 때문에). 종료 기준에 도달하지 못할 것입니다! 종료 기준, 아마도 if..fi 문이 있어야합니다
Vineet Menon

자기 복제 스크립트의 멋진 컬렉션을 ... nyx.net/~gthompso/self_sh.txt
Vineet 메논

그것의 원래 자체 (과정)의 복사본을 생성하고 종료 가정 @DavidSchwartz, 문제는 내가 자신을 죽이고 동시에 새로 시작에 도착하지 못할 것입니다 그 어느 쪽인가 새로운 일을 시작하거나 종료
ricedragon

쉘은 프로세스 사본을 작성하는 메커니즘을 제공하지 않습니다. 기존 프로세스를 복사하는 대신 새 프로세스를 만드는 것이 어떻습니까?
David Schwartz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.