2012-11-26 2 views
0

나는 c-shell로 프로그래밍하는 데 비교적 익숙하며 tr 명령어에 문제가있다. 스크립트를 실행하면 "tr command not found"라는 오류 메시지가 나타납니다. 또한 변수에 할당 한 foreach 루프에서 파일의 내용을 표시하려고합니다. 이것은 실제로 파일 경로 나 내용의 이름 만 인쇄합니까?리눅스 tr 명령어

#! /bin/csh 

set path = /home/students/fall2012/crn12143/ford/friend_list 

foreach i ($path) 
echo $i | tr '[a-z]' '[A-Z]' 
end 
+2

하지 마십시오 코드 스크립트 :

대신 같은 다른 변수 이름을 사용해야합니다. http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ –

+1

은 파일의 이름 만 인쇄합니다. 'cat $ i'를 사용하여 파일을 한 번에 하나씩 화면에 출력하십시오. 행운을 빕니다. – shellter

+0

@shellter 나는 그것을 이해했다! 그 파일의 내용을 완벽하게 표시, – demet8

답변

2

더 이상 tr을 찾을 수 있도록 경로를 깨고있다 : 여기에 내 코드입니다. 당신이 정말로 그것을 사용해야처럼, 당신은 뭔가 다른 그 변수의 이름을 바꾸는 것이 좋습니다 path를 사용하지 않기 때문에

set path=(/home/students/fall2012/crn12143/ford/friend_list $path) 

: 같은 경로를 변경합니다.

echo $i | /path/to/tr '[a-z]' '[A-Z]' 
+0

소문자 경로와 대문자 경로가 동일합니까? –

+0

@ shiplu.mokadd.im, 좋은 질문입니다. 내 .cshrc에 둘 다 있었으므로 둘 다 여기에 붙여 넣었습니다. 차이점이 무엇인지 잘 모릅니다. 이러한 변경 사항에 대한 의견을 피력 할 수 있도록 기억해야합니다. – gpojd

+0

@ shiplu.mokadd.im 유닉스 경로는 대소 문자를 구분합니다. –

1

당신은 좋지 않다 경로 envrionment 변수를 재정의 :

여전히 경로의 대부분을 제거 할 경우

tr 명령에 대한 전체 경로를 사용합니다. csh``에서

set folder = /home/students/fall2012/crn12143/ford/friend_list 
+0

정말 도움을 주셔서 감사합니다, 나는 경로 변수의 이름을 folder로 바꿨고 스크립트를 소문자에서 대문자로 변환했습니다. foreach를 사용하여이 폴더의 내용을 추출하고 화면에 인쇄하려면 어떻게해야합니까? – demet8