유닉스에서 아래의 문장처럼 디버깅하는 법을 가르쳐주세요. 아래 코드가 수행하는 작업을 이해하는 방법을 단계별로 설명합니다.
if [ ! -f $R_C_S_L/j_r_d* ]
then
echo 0>$R_C_S_L/j_r_d
fi
유닉스에서 아래의 문장처럼 디버깅하는 법을 가르쳐주세요. 아래 코드가 수행하는 작업을 이해하는 방법을 단계별로 설명합니다.
if [ ! -f $R_C_S_L/j_r_d* ]
then
echo 0>$R_C_S_L/j_r_d
fi
그럼 당신은 왼쪽에서 오른쪽으로 읽어 :
if [ ! -f $R_C_S_L/j_r_d* ]
나는 if
과 [
이 분명하다 생각?
man [
최대
man test
을 제공하고, 거기에 우리가 읽어
NAME
test - check file types and compare values
SYNOPSIS
test EXPRESSION
test
[ EXPRESSION ]
[ ]
[ OPTION
을 아래로 더욱 :
-f FILE
FILE exists and is a regular file
파일을?
은 왼쪽에서 파싱됩니다. 여기서 $는 변수입니다. 변수 나 자신을 작성하고, 그들을 함께 아교에서, 나는 $ R_C_S_L 변수가 있으므로, 다음/디렉토리 구분 기호이며, j_r_d는 *는 글 로빙 패턴, 이름의 일부입니다, 그것은 단지 L을 포함 할 것이라는 점을 알고있다.
그래서 파일로, $ R_C_S_L 참조하는 디렉토리는 j_r_d * 검색하여 일치하는, 즉, 테스트, 그리고! 테스트가 실패하면 내면이 완료됩니다.
가장 짧은 파일에 0을 쓰고, 위의 패턴과 일치하는 파일이없는 경우.
훌륭하게 설명해 주셔서 대단히 감사합니다. – user840963
[
및 ]
는 조건을 둘러싸고 있습니다.!
은 NOT 조건 자이며 대괄호 사이에있는 값이 모두 true에서 false로 무효화됩니다.-f
은 술어이며 '파일이 존재합니까?'$R_C_S_L
은 다른 곳에서 정의 된 변수입니다.*
은 와일드 카드입니다.then
은 if 블록을 시작합니다.fi
은 if 블록을 끝냅니다.echo {stuff}
은 화면에 물건을 인쇄합니다.echo {stuff} > {file}
은 파일로 리디렉션합니다.는 위의 문장은 이렇게 번역 될 수있다 :
"다음 쓰기 j_r_d '0'파일 j_r_d
에에 디렉토리 $ R_C_S_L에있는 존재하고 문자로 시작하는 파일이있는 경우 $R_C_S_L
디렉터리. "
$ man bash
을 참조하십시오.
그런 파일이 없다면 의미 한 것입니다. :) –
그래, 나도 그런 식으로 이해하지만, 좋은 explaination 감사합니다. – user840963
그것이 AN/후 한 Statment 경우 ...
if [ I_AM_TRUE ]
then
DO_ME
fi
then
정렬 개구 브래킷처럼 fi
일종의 폐쇄 브래킷 비슷하다.
-f FILENAME
은 FILENAME이 파일이고 을 넣으면 TRUE입니다. 그 표현의 전면 진리 값을 뒤집에 파일 이름이 파일
echo
인쇄 밖으로 물건이 아닌 경우 기호 >
그 물건을 소요하고 다른 곳에서 다시 지시하면서 ...
! -f FILENAME
은 TRUE입니다. VAR의 값은 모두 일치하므로 마지막으로
에서, *는 와일드 카드입니다 ...
$VAR
을 입력하여 입수한다 (아무것도 포함하지 않습니다!)를 특정 파일 접두사 있는지 확인 같은
그래서 보이는 사용 중이며 그렇지 않은 경우 파일을 만들고 그 안에 0을 넣습니다.
if/then 문을 테스트 할 수있는 전체 목록은 http://en.wikipedia.org/wiki/Test_(Unix을 참조하십시오. 위의 프롬프트에 man test
을 입력하십시오. 그것은 그것을하는 인간 다운 방법 일 것입니다.
'남자 test' .... –
사용자 환경에서 변수'R_C_S_L'이 있거나 스크립트에서 위의 정의합니까? 이것은 단순히 '이 파일과 일치하는 파일이없는 경우 빈 파일을 만듭니다'이지만 단순히 경로를 알 수있는 문맥이 없습니다. 바라건대 사람도 (? 시험? 배쉬) – Rup
안녕하세요 RUP를이 설명 매뉴얼 페이지에서 당신을 가리킬 수 있습니다, R_C_S_L는 environement.How에서 내 보낸 매개 변수는 어떤 파일이 경로와 일치하지 않는 경우 다음을 만드는 ' "로이 문장을 이해 할 것입니다 빈 파일 "유닉스에서 우리가 어디서 찾을 수 있는지 말해주세요! -f ...]와 같은 명령문이 있습니까? 답변 해 주셔서 감사합니다. 당신이'['와일드 카드가 일치하는 경우 하나 개 이상의 파일에서 오류 메시지가 나타납니다 – user840963