TS-7400 ARM SBC를 부팅하기위한 스크립트를 만들고 있는데, 일부 인수와 선택적 커널 매개 변수를 읽을 수 있기를 원합니다. SD 카드. 내 config 파일 syscfg.conf
라고하고 KEYWORD=value
쌍을 사용하여 구성되어 있지만, 커널 인수 이후 자체는 동일한 구문을 가질 수 있습니다,이 같은 값을 구분 생각 :busybox에서 캡처 된 그룹 정규식을 검색하는 방법 sed
CMDLINE_ARGS="elevator=noop scheduler=noop"
일반 bash는 테스트하는 동안, 내가 할 수 있었다 하나 이러한 방법 중 하나를 사용하여 커널 명령 줄 인수 분리 :
$ grep CMDLINE_ARGS syscfg.conf | sed 's/CMDLINE_ARGS="\(.*\)"/\1/'
elevator=noop scheduler=noop
$ grep CMDLINE_ARGS syscfg.conf | cut -d'"' -f2
elevator=noop scheduler=noop
$ awk -F'"' '/CMDLINE_ARGS/ {print $2}' syscfg.conf
elevator=noop scheduler=noop
하지만 그것은이 비지 박스 기반 벗었 리눅스 사용자 정의 커널 또는 응용 프로그램을 부팅하는 데 사용, 그것은 '아무튼입니다 TS-LINUX에서 실행하는 경우 보통 bash처럼 작동합니다. awk
명령도 존재하지 않는 동안, cut
버전은 잘 작동하지만, sed
하나의 반환이 :
CMDLINE_ARGS="elevator=noop scheduler=noop"
왜 비지 박스의 sed
구현은 다음과 같이 행동한다? 전체 문자열을 반환하는 대신 정규식 인 "
구분 기호 사이에있는 모든 문자의 "\1
"그룹 만 출력 할 것으로 예상했습니다. 우리가 bash처럼 작동하도록 할 수있는 방법이 있습니까?
당신의 명령을 여기에 작동 비지 박스 버전 1.20.2 – Thor
그것을합니까? 나는 TS-LINUX가 사용하는 버전을 확인해야 할 것입니다 ... 그것은 매우 오래된 것으로 보입니다 (아직 커널 2.4 ...) – Claudio