한 줄 명령으로 단일 플래그를 주석 처리하고 싶습니다. Bash는 from # till end-of-line
의견 만있는 것 같습니다 . 나는 다음과 같은 트릭을보고있다.
ls -l $([ ] && -F is turned off) -a /etc
추악하지만 아무것도 아닌 것보다 낫습니다. 더 좋은 방법이 있습니까?
다음은 작동하는 것 같지만 휴대용인지 확실하지 않습니다.
ls -l `# -F is turned off` -a /etc
답변
내가 선호하는 것은 :
이것은 약간의 오버 헤드가 있지만 기술적으로 귀하의 질문에 대답합니다.
echo abc `#put your comment here` \ def `#another chance for a comment` \ xyz etc
파이프 라인의 경우 오버 헤드가없는보다 깨끗한 솔루션이 있습니다.
echo abc | # normal comment OK here tr a-z A-Z | # another normal comment OK here sort | # the pipelines are automatically continued uniq # final comment
답변
줄을 복사하고 원래 버전을 주석 처리하는 것이 가장 쉽고 읽기 쉽습니다.
#Old version of ls:
#ls -l $([ ] && -F is turned off) -a /etc
ls -l -a /etc
답변
$(: ...)
조금 추악하지만 여전히 좋지는 않습니다.
답변
변수에 저장하는 것은 어떻습니까?
#extraargs=-F
ls -l $extraargs -a /etc
답변
다음은 여러 파이프 명령 사이의 인라인 주석에 대한 솔루션입니다.
주석 처리되지 않은 코드의 예 :
#!/bin/sh
cat input.txt \
| grep something \
| sort -r
파이프 주석 솔루션 (헬퍼 기능 사용) :
#!/bin/sh
pipe_comment() {
cat -
}
cat input.txt \
| pipe_comment "filter down to lines that contain the word: something" \
| grep something \
| pipe_comment "reverse sort what is left" \
| sort -r
또는 원하는 경우 도우미 기능이없는 동일한 솔루션이 있지만 조금 더 지저분합니다.
#!/bin/sh
cat input.txt \
| cat - `: filter down to lines that contain the word: something` \
| grep something \
| cat - `: reverse sort what is left` \
| sort -r
답변
대부분의 명령은 args가 어떤 순서로든 오도록합니다. 주석 처리 된 플래그를 행의 끝으로 이동하십시오.
ls -l -a /etc # -F is turned off
그런 다음 다시 켜려면 주석 처리를 제거하고 텍스트를 제거하십시오.
ls -l -a /etc -F
답변
변수가 비어 있다는 것을 알면 주석으로 사용할 수 있습니다. 물론 비어 있지 않으면 명령이 엉망이됩니다.
ls -l $ {1 # -F가 꺼져 있습니다} -a / etc
