타임 스탬프를 내 쉘 스크립트에 넣고 싶습니다. 예를 들어, 한 파일을 scp로 만들고, 그 파일이 타임 아웃 내에서 오류를 통해 전송되지 않으면, 성공했을 경우 성공 메시지, 타임 아웃을 넣는 방법? 예를 들어셸 스크립트의 타임 아웃
0
A
답변
0
사용이 :
command & # start a new process in background
pid=$(pidof command | cut -f1 -d' ') # save pid of started process
sleep(timeout_value) # set timeout value to match your desired time to process
pids=$(pidof command) # get all pids of running processes of this command
if [[ $(grep "$pid" "$pids") ]]; then # if started process still running
echo "error"
else
echo "success"
fi
변경 단어 명령은 실제 명령하였습니다. 이것이 파이프 라인과 함께 작동하는지 확신 할 수 없으면 잠시 후에 테스트 해보고 다시 돌아올 것입니다. 다음 (제공 당신은 실행하고 사용 bash는) 할 수있는 파이프 라인 명령에 대한
:(command | other_command | ...) &
pid=$(pidof bash | cut -f1 -d' ') # save pid of started process
sleep(timeout_value) # set timeout value to match your desired time to process
pids=$(pidof bash) # get all pids of running bash processes
if [[ $(grep "$pid" "$pids") ]]; then # if started process still running
echo "error"
else
echo "success"
fi
문제
참고가이 스크립트로 거기에 더 나은 답변을하다 항상 것 전체 타임 아웃을 기다려라. 그건 네가 바라는 것이 아니 겠지.
가능한 솔루션은 여러 번 잠을하는 것입니다
가능한 해결 방법이 같은 :
for i in $(seq 1..100); do
sleep(timeout/100) # sample the timeout interval
pids=$(pidof bash)
if [[ $(grep -v "$pid" "$pids") ]]; then # if process no longer running
echo "succes" && exit 0 # process completed, success!
elif [[ $i -eq 100 ]]; then
echo "error" # at the end of our timeout
fi
done
참고 : 제한 시간이 정말 오래, 그것을 너무 최적화하려고하면 값 (100)을 변경 반복 당 타임 아웃이 너무 길지 않습니다.
1
timeout(1)
을 사용하십시오. 작성, 디버그 및 유지 관리해야하는 자작 해결책보다 훨씬 낫습니다.
관련 문제
- 1. 자바 스크립트의 타임 아웃 루프가 대기하지 않습니다.
- 2. 셸 스크립트의 자동화 변수
- 3. 셸 스크립트의 암호 숨기기
- 4. 셸 스크립트의 신호 처리
- 5. 셸 스크립트의 문제점
- 6. tcsh 셸 스크립트의 정규식
- 7. 셸 변수를 셸 스크립트의 인수로 전달하는 방법
- 8. 타임 아웃
- 9. 파이썬 urllib2가 타임 아웃
- 10. sfDoctrineGuardPlugin - 타임 아웃 로그 아웃
- 11. 배시 셸 스크립트의 파일 게시
- 12. 셸 스크립트의 슬래시와 문자열 비교
- 13. 파일에서 셸 스크립트의 문자열 분할하기
- 14. JSON 및 셸 스크립트의 오류
- 15. 오픈 시프트 타임 아웃 오류 (타임 아웃 클라이언트 구성)
- 16. GLib의 변수 타임 아웃
- 17. 아파치 소켓 타임 아웃
- 18. cfexecute 타임 아웃
- 19. OkHTTP에서 핸들 타임 아웃
- 20. 타임 아웃 InetSocketAddress
- 21. RxJS 인증 타임 아웃
- 22. 정의 된 타임 아웃
- 23. 발리 : 타임 아웃 오류가
- 24. 타임 아웃 URL 모의
- 25. JSF에서 세션 타임 아웃
- 26. 웹뷰에서 타임 아웃 구현하기
- 27. 액터의 타임 아웃 구현
- 28. TCL을 사용한 타임 아웃
- 29. 타임 아웃 거래는 dbpedia
- 30. (: 타임 아웃> 30 =)
젠장, 더 우아한 해결책이 있다는 것을 알았어 : D 나는 쉘 스크립팅에서 약간의 운동이 결코 나쁜 일은 아니지만 여기에 귀중한 교훈을 얻은 것 같아! – ShellFish
운동으로, 확실히 아닙니다. 개발 시간으로 생각하지 않습니다. 일반적으로 유지 관리에 시간과 노력이 요구되는 비정상적인 코드가 발생합니다. –
전적으로 귀하의 답변에 동의합니다. 나는 내가 내장 명령에 대해 몰랐다는 것을 믿을 수 없다. – ShellFish