서브 쉘의 배쉬 구문 강조


13

Bash의 서브 쉘과 관련된 많은 질문 ( "이 파이프 while read루프 에서 왜 변수가 증가하지 않습니까?")을 고려할 때 코드가있는 일부 편집기 또는 서비스를 참조하는 것이 매우 좋을 것이라고 생각했습니다. 서브 쉘에서 실행될 코드는 상위 쉘에서 실행 된 코드와 다르게 형식화됩니다. 교육용 장치로 유용 할 수 있습니다 (즉, 차이점 code | codecode < <(code)즉각적인 차이점 참조 ). 이것이 존재합니까?

누구나 jEdit 또는 VIm에 대해 보너스 포인트를 구현하면 보너스 포인트가 적용됩니다.

분명히 그것은 (어떤 구문 강조는 내 경험 없음) 완벽해야하지만, 같은 I 용의자 일하지 않는 (foo=bar; echo $foo;)command | while read ...시작 너무 어렵지 않을 것이다.


vim코드 강조 표시에 추가 할 수 있다고 확신합니다 .
케빈

2
@ 케빈 : 문제는 어떤 형태로든 이미 존재 하는지 여부 입니다. 물론 Turing-complete highlighting 시스템을 지원하는 편집기에 추가 할 수 있습니다.
l0b0 2019

1
루프 동안 파이프의 경우, POSIX는 존재한다면 그렇게 교육 도구,이 하이라이트로, :( 아닌 휴대용 쉘 스크립트를 작성하는 사람들을 가르 칠 것, 부모의 파이프가 실행의 일부를 지정하지 않습니다
James Youngman

@JamesYoungman : 그것을 배쉬 전용으로 만드는 또 다른 이유 :)
l0b0

답변:


2

나는 이것이 존재하지 않는다고 생각한다. 유용하지만 편집기에서 사용되는 표준 구문 분석 방법으로는 구현하기가 어렵습니다. 구문 분석 관점에서 서브 쉘에 속하는 코드 블록을 판별하기 위해 분석해야하는 많은 키워드와 특수 기호가 있습니다.

그러나 내가 틀렸다는 것을 알게되어 기쁘고 누군가가 그러한 구성을 만드는 데 필요한 노력을 기울였습니다.


0

내 Vim은 이미이 작업을 수행합니다.

서브 쉘 내부에 주석이 제대로 표시되지 않기 때문에 실제로는 나를 귀찮게합니다.

여기에 이미지 설명을 입력하십시오

소스에서 컴파일 한 Vim 7.3 패치 874입니다.


때로는 zsh서브 쉘 내에서 작업 할 때 파일 유형을로 설정했습니다 . 구문 강조가 수정됩니다.

OMG 완벽합니다. 감사!! 서브 쉘 안에이 거대한 블록 (많은 주석 포함)이 있어야 set -x; set -e해당 섹션에서 작업을 수행 할 수 있습니다 . 그리고 stderr을 포함한 모든 출력을 로그에 캡처합니다.
Steven Lu

1
나는 보이지 않는 어떤 매우 유용하지 않는 것 서브 쉘에서 서식. 아니면 스크린 샷에서 누락 되었습니까?
l0b0

변수 세트와 trap키워드가 강조 표시됩니다. 댓글을 강조 표시하지 못했습니다. zsh 파일 형식은 작동합니다. 자, 서브 쉘과 메인 쉘을 구별하는 한, (어쨌든 나는 당신이 원했던 것입니다.) 음 .. 몇 가지 주석을 사용합니까?
Steven Lu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.