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


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.