파이프 라인을 사용하여 쉘 스크립트를 작성하고 백 슬래시를 사용하여 행을 계속할 때 견고하고 읽기 쉽고 이식 가능한 방식 으로 별도의 행에 주석을 삽입하려고합니다 .
예를 들어, 주석 처리되지 않은 여러 줄 명령이 주어지면 (명확성을 위해 @DigitalRoss에서 도난 당함) :
echo abc |
tr a-z A-Z |
sort |
uniq
... 아래는 내가 달성하고자하는 것에 미학적으로 가장 가깝지만 명백한 이유로 작동하지 않습니다 ... 그리고 예, 이것은 일반적으로 논평할만한 가치가 없다는 것을 잘 알고 있습니다 :
# Perform critical system task.
# NOTE - An example of what does *not* work.
echo abc |
# Convert lowercase to uppercase.
tr a-z A-Z |
# Sort the results.
sort |
# Only show unique lines.
uniq
다음과 같이 기존 관련 답변이 만족스럽지 않습니다 .
첫째, glenn jackman의 답변 (배열에 인수를 추가 한 다음 배열을 실행)은 단일 명령에는 작동하지만 파이프 라인에는 작동하지 않습니다 (그렇더라도 피할 수있는 복잡성을 추가합니다).
둘째, @Gilles의 대답 (을 사용 :)은 파이프 라인의 흐름을 변경하기 때문에 파이프 라이닝과 함께 작동하지 않는 것으로 보입니다.
$ echo "abc" | :
$
( 참고 : :수정되지 않은 출력에 해당하는 것이 있으면 미적으로 허용되지만 찾을 수는 없지만 사용자 정의 항목을 작성할 수는 있지만 이식성이 떨어집니다.)
마지막으로 StackOverflow에 대한 DigitalRoss의 답변 의 마지막 부분은 동일한 줄에 주석을 추가하는 데 효과적이지만 별도의 줄에 주석을 강력히 선호합니다. 그렇지 않으면 행의 길이가 크게 변하면 가독성이 떨어집니다.
echo abc | # normal comment OK here`
/usr/local/bin/really/long/path/ridiculously-long-filename.sh | # another normal comment OK here
sort | # the pipelines are automatically continued
uniq # final comment
가독성을 유지하고 복잡성을 최소화하는 답을 찾고 있거나 왜 내가 찾고있는 것이 실현 불가능한 지에 대한 배경을 찾고 있습니다.
i++; // increment i by one. 난 당신이 읽을 제안 "스타일을 프로그래밍의 요소"