.configure 파일의 배쉬 코드 라인
-
13-09-2019 - |
문제
다음 코드 줄을 이해해야합니다.
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
: 대체를 완료하고 결과를 인쇄하십시오
제휴하지 않습니다 StackOverflow