나는 csh를 처음 사용합니다. stat의 출력을 비교하고 싶지만 다음과 같은 경우 오류가 발생합니다. 그것들을 문자열로 변환하고 비교할 수 있습니까? 다른 방법이 있습니까? 감사!
코드는 다음과 같습니다.
set BEFORE_TIME = "`stat -c % y / home / a.xml`" // a.xml을 변경할 수있는 cpp 프로그램 호출 # 파일이 변경된 경우 작업을 수행하십시오 set AFTER_TIME = "`stat -c % y / home / a .xml` " if ($ BEFORE_TIME! = $ AFTER_TIME) then //이 비교가 작동하지 않습니다. echo"파일 a.xml이 변경되었습니다. " else echo"파일 a.xml이 변경되지 않았습니다 " endif
의 출력은 stat -c %y ...
여러 단어로 구성됩니다. 예를 들어
2013-01-27 13:03:03.563041058 -0800
set
명령 에 큰 따옴표를 사용 했지만 변수에 대한 참조도 인용해야합니다.
이것을 변경하십시오 :
if ( $BEFORE_TIME != $AFTER_TIME ) then
이에:
if ( "$BEFORE_TIME" != "$AFTER_TIME" ) then
또는 이것에 :
if ( $BEFORE_TIME:q != $AFTER_TIME:q ) then
당신이 사용하여이 같은 문제로 실행하는 거라고 참고 진정한 쉘에게 같은 다른 쉘을 sh
하거나 bash
, 및 솔루션이 동일한 것 (이외의 그 껍질을 제외 csh
하고 tcsh
이없는 :q
접미사).
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다