이 간단한 csh 스크립트가 있습니다.이벤트를 찾을 수 없습니다. csh
#!/bin/csh
echo "Hello World!"
echo "How are you today?"
하지만 오류 ": Event not found.
어떤 문제가 무엇입니까?
이 간단한 csh 스크립트가 있습니다.이벤트를 찾을 수 없습니다. csh
#!/bin/csh
echo "Hello World!"
echo "How are you today?"
하지만 오류 ": Event not found.
어떤 문제가 무엇입니까?
csh는 내역 대체를 위해 !
문자를 사용합니다. 따라서 시퀀스 !"
에서 "
은 문자열의 닫는 따옴표로 처리되지 않습니다. 명령 행에서 !foo
을 입력하면 foo
으로 시작하는 가장 최근의 명령이 반복되는 것처럼 쉘은 "
으로 시작하는 명령 내역에서 무언가를 검색합니다.
적어도 원래의 csh의 경우,이 따옴표는 작은 따옴표로 묶은 문자열에서도 항상 대체됩니다. 따라서 큰 따옴표를 작은 따옴표로 바꾸어도 반드시 도움이되는 것은 아닙니다. .
가#!/bin/csh -f
echo "Hello World\!"
echo "How are you today?"
(일부 시스템에서, 나는 작은 따옴표가 아니라 따옴표를 사용하면 오류가 발생하지 않도록 않는 것을 발견 나는 그 생각 :
!
문자를 탈출하는 유일한 방법은 \
백 슬래시입니다 이러한 시스템 /bin/csh
에 조금 다르게 작동 /bin/tcsh
에 심볼릭 링크가 있기 때문에 당신이 당신의 스크립트 호환성을합니다. 당신은에 의존해서는 안된다.) 나는 또한을 추가 한
주옵션을 #!
행에 추가하십시오. 이렇게하면 셸이 시작시에 $HOME/.cshrc
을 실행하지 못하며, 일반적으로 csh 스크립트를 사용하는 것이 좋습니다. 스크립트를 조금 더 빠르게 실행하고 다른 사용자가 스크립트를 실행할 때 문제가 될 수있는 자신의 .cshrc
에 대한 우연한 의존을 방지합니다.
그리고 csh를 스크립팅에 대한 질문에
, 나는 법적으로 [*]이 링크를 게시 할 의무가 있어요 :http://www.perl.com/doc/FMTEYEWTK/versus/csh.whynot
[*] 실제로 법적으로이 링크를 게시 할 의무가 없습니다입니다.
TL; DR : "무엇이 잘못 되었나요?" "csh." 질문과 답변 모두 +1. – stevesliva
첫 줄을'#!/bin/csh -f'로 수정하고 다시 시도하십시오. '.cshrc' 또는'.tcshrc'와 관련이있을 수 있습니다. – timrau
시도. 작동하지 않음 – Programmer