문제

다음 코드 줄을 이해해야합니다.

BIN_DIR=`grep BIN_DIR= $SMLCM | head -1`

어디 $SMLCH 경로를 포함합니다

이것이 지금까지 이해했던 것입니다.

  • grep 일부 문자열, 가능한 경로를 생성합니다. Grep은 무엇을합니까? BIN_DIR=?

  • 경로는 헤드로 전달되며 경로 내의 모든 파일은 첫 번째 줄을 추출하는 데 사용됩니다.

  • 무언가를 평가하고 (정확히 무엇입니까?) BIN_DIR

친애하는,

사이먼

도움이 되었습니까?

해결책

이것은 $ smlcm 변수에 지정된 파일에서 문자 그대로 문자열 "bin_dir ="의 모든 발생을 발견하고 해당 출력의 첫 번째 줄만 가져 와서 bin_dir에 할당합니다.

BIN_DIR에 assiggned가 무엇인가이기 때문에 이것은 원하는 방식으로 작동하지 않을 수 있습니다.

bin_dir = "bin_dir = blah"

다른 팁

  • grep은 bin_dir =가 포함 된 모든 라인과 일치합니다.
  • 헤드는 첫 번째 줄을 가져갑니다
  • 이 줄 (후진 안에있는 명령의 결과)은 bin_dir에 다시 할당됩니다.

이것은 추출됩니다 의 가치 $BIN_DIR 파일에 처음으로 표시되면 $SMLCM 변수에 할당하십시오 $BIN_DIR 현재 스크립트에서 :

BIN_DIR=$(sed -n 's/^BIN_DIR=\(.*\)$/\1/p' $SMLCM | head -n 1)
  • sed -n : 스트림 편집기를 실행하고 나타나는대로 각 라인을 인쇄하지 마십시오.
  • s/ : 대리자
  • ^BIN_DIR= : "bin_dir ="텍스트로 시작하는 줄 ( "^")
  • \(.*\)$ : 그리고 모든 문자의 0 ( "*")의 그룹 ( " ()")로 끝 ( "$")가 끝납니다 ( ".")
  • / : 그 일치를 교체하십시오
  • \1 : 첫 번째 (이 경우에만) 그룹의 내용
  • /p : 대체를 완료하고 결과를 인쇄하십시오
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top