2014-07-15 4 views
-1

에 나는 bash는 스크립트에서이 건너 온 :사용 "^ -"그렙

CONFIG_FILE는 빌드 스크립트 관련 설정이 일부 구성 파일이
echo -e "${CONFIG_FILE}x" | grep -q "^-" 

.

'x'의 의미는 "${CONFIG_FILE}x"이고 grep의 -q "^-" 패턴은 무엇을 의미합니까?

감사합니다.

답변

3

나는 ${CONFIG_FILE}x에 어떤 목적이 표시되지 않습니다. 어쩌면 거기가 변수 따옴표를 가지고 있지 않은 스크립트의 이전 버전, 그래서 그들은이 경우

echo -e ${CONFIG_FILE}x 

을 썼다는 x는 변수가 비어있는 경우에도 echo에 인수가 있음을 보장합니다. 그러나 따옴표로 문제를 해결할 수 있으므로 x은 더 이상 필요하지 않습니다.

grep -q "^-" 입력의 첫 번째 문자가 -인지 여부를 테스트합니다. 정규 표현식 ^은 행의 시작과 일치하고 -은 자체와 일치합니다. -q 옵션은 grep에 일치하는 행을 인쇄하지 않도록 지시하며, 일치 여부에 따라 종료 상태를 설정합니다.

+0

답변 해 주셔서 감사합니다. 그러나 "^ -"을하는 이유는 무엇입니까? 어떻게 도움이되는지 의미합니다. 나는 이것이 여러 곳에서 일어나는 것을 보았다. 파일에 대한이 검사를 수행하기위한 몇 가지 논리 또는 철학이 있습니까? –

0
  • echo -e "${CONFIG_FILE}x"

    팽창 리터럴 x 하였다 CONFIG_FILE 변수의 값을 출력한다.

  • grep -q "^-"

    그리고 출력이 - 기호로 시작하면 종료합니다.