를 사용할 때이처럼 보이는 코드의 비트를 쓰고 싶습니다 STDERR을 억제 이 오류 메시지를 표시하지 않을 수 있지만 여전히 파이프 STDOUT
to wc
? 나는 이것에 대한 기존의 질문을 거쳤지 만 대부분의 대답은 csh
에서 작동하지 않거나 과 STDERR
을 |&
으로 결합하려고 시도하고 싶지 않습니다.CSH는 역 따옴표
답변
가장 깨끗한 방법은 ls
자체를 음소거하는 것이지만 가능하지 않습니다. 당신의 루프 myscript.cs
라는 파일에있는 경우
을 당신은 당신이 원하는 목적지에 표준 오류 리디렉션 쉘 명령> &를 추가, 일부 인수 myscript.cs -arg1 blabla -arg2 bla
사용하여 파일을 호출 :
당신은 의미, 전체 스크립트를 억제 할 수 있습니다. 예 :
myscript.cs -arg1 blabla -arg2 bla >& /dev/null
직접 답을 얻지는 못했지만 문제를 해결해야합니다. LS -1 $ {JOB_PREFIX} _ $ {`경우
,: 편집
는 의견은 스크립트, 두 개의 라인으로 라인을 분할 할 수 있습니다 다른 스크립트로 리디렉션해야한다고 덧붙였다 때문에 job_counter} _ *. 아웃> &는/dev/null` 다음
동안 여기 < 당신의 동안>
끝
ENDIF
csh와 tcsh는 stderr를 자체적으로 리디렉션 할 수 없으므로 스크립팅에 사용해서는 안되는 여러 가지 이유 중 하나입니다. 다른 쉘을 산란 괜찮 경우
, 당신은 환경 변수에 JOB_COUNTER
을 변경하고 수행 할 수 있습니다
while (`sh -c '2>/dev/null ls -1 ${JOB_PREFIX}_${JOB_COUNTER}_*.out | wc -l'` > 0)
echo "Do something here."
end
을 당신이 표현 대신 while
루프 조건으로 테스트를 사용하려면 , 당신은 창조적이되어야합니다. 귀하의 경우에는
#!/bin/tcsh -f
set i = 4
while (1)
if ($i <= 0) break
echo hi
@ i = ($i - 1)
end
,이 같은 것을 볼 수 있습니다 나는 우리가 stderr로 인쇄 된 결과 대신 종료 상태를 사용할 수 있도록 grep -q .
에 wc -l
을 변경했습니다. 스크립트의 출력이 다른 스크립트에 파이프 또한 다음 같은 문제가있는 것 모두 로그 파일, 전송로
#!/bin/tcsh -f
set dir_exit_status = 0
while ($dir_exit_status = 0)
(ls -1 ${JOB_PREFIX}_${job_counter}_*.out | grep -q '.') >& /dev/null
set dir_exit_status = $status
end
- 1. 역 따옴표
- 2. 구문 연산자로 역 따옴표
- 3. 사용/역 따옴표
- 4. PHP - "자식 풀은"역 따옴표
- 5. 저장된 함수 - 오류 # 1064 - 역 따옴표/틱?
- 6. 역 따옴표 실행은 서버에서 로컬이 아닌 작품
- 7. 역 따옴표 (악센트)를 사용할 때 문자열 조작 규칙은 무엇입니까?
- 8. defmacro 내에서 적절한 역 따옴표 및 레이블 + 매크로 렛으로 캡처하기
- 9. XNA Keys 열거 형의 역 따옴표 (`) 키의 이름은 무엇입니까?
- 10. Bourne 쉘 따옴표, doublequote 및 역 인용 부호 질문
- 11. AutoHotkey를 - Alt +`(역 따옴표)는, + Alt + Tab 키를
- 12. 항상 반대하는 JSON ServiceStack.Text 역 직렬화는 문자열로 변환하고 따옴표
- 13. 따옴표 (큰 따옴표 또는 작은 따옴표)
- 14. PHP 따옴표 내의 따옴표
- 15. 작은 따옴표 용 문자
- 16. 따옴표
- 17. 따옴표
- 18. 따옴표
- 19. 따옴표
- 20. 따옴표
- 21. 따옴표
- 22. 따옴표
- 23. 따옴표
- 24. 따옴표
- 25. 정규 표현식 : 따옴표 안에 따옴표
- 26. 이중 따옴표 구분 기호의 따옴표
- 27. 큰 따옴표 안에 작은 따옴표
- 28. 작은 따옴표/큰 따옴표 ksh
- 29. postgresql 따옴표 문제
- 30. 역 직렬화 역 호환
불행하게도이 문제가 해결되지 않습니다. 나는 사실상'ls'을 억제 할 해결책이 정말로 필요합니다. –
http://stackoverflow.com/questions/42261228/csh-set-no-match-error-wildcard/42384620#42384620 나는 비슷한 질문에 대답했다. – user2141046